android apk安装过程,Android安装apk文件并适配Android 7.0详解
Android安装apk文件并适配Android 7.0详解
首先在AndroidManifest.xml文件,activity同级节点注册provider:
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.file_provider"
android:exported="false"
android:grantUriPermissions="true">
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
将apk文件下载到此路径:
String cachePath = (
getExternalFilesDir("upgrade_apk") +
File.separator +
getPackageName() +
".apk");
在res目录xml文件夹下创建名为file_paths的文件:upgrade_apk代表上面保存路径的文件夹名称,可随意更改,相同即可。
最后编写代码,区分不同Android系统版本号,安装apk(注意:【com.apkinstall.demo】要替换自己应用的包名)
/**
* 安装 apk 文件
*
* @param apkFile
*/
public void installApk(File apkFile) {
Intent installApkIntent = new Intent();
installApkIntent.setAction(Intent.ACTION_VIEW);
installApkIntent.addCategory(Intent.CATEGORY_DEFAULT);
installApkIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
installApkIntent.setDataAndType(FileProvider.getUriForFile(getApplicationContext(), "com.apkinstall.demo.file_provider", apkFile), "application/vnd.android.package-archive");
installApkIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
} else {
installApkIntent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");
}
if (getPackageManager().queryIntentActivities(installApkIntent, 0).size() > 0) {
startActivity(installApkIntent);
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
android apk安装过程,Android安装apk文件并适配Android 7.0详解相关推荐
- android 7 apk 安装程序,Android安装apk文件并适配Android 7.0详解
Android安装apk文件并适配Android 7.0详解 首先在AndroidManifest.xml文件,activity同级节点注册provider: android:name="a ...
- linux中realplayer.rpm格式的软件安装,realplayer安装过程中出现的文件依赖问题
realplayer安装过程中出现的文件依赖问题 发布时间:2010-07-20 14:26:21来源:红联作者:kevin_freedom [i=s] 本帖最后由 kevin_freedom 于 2 ...
- rac安装过程中 error while loading shared libraries libpthread.so.0 问题的解决
rac安装过程中 error while loading shared libraries libpthread.so.0 问题的解决 2010-08-28 23:10 在CentOS 5上安装Ora ...
- Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验
Android群英传笔记--第十二章:Android5.X 新特性详解,Material Design UI的新体验 第十一章为什么不写,因为我很早之前就已经写过了,有需要的可以去看 Android高 ...
- mysql5.7.11 linux_CentOS 7 中以命令行方式安装 MySQL 5.7.11 for Linux Generic 二进制版本教程详解...
MySQL 目前的最新版本是 5.7.11,在 Linux 下提供特定发行版安装包(如 .rpm)以及二进制通用版安装包(.tar.gz).一般情况下,很多项目都倾向于采用二进制通用安装包形式来进行安 ...
- CentOS 8.1安装MySQL 8.0详解
CentOS 8.1安装MySQL 8.0详解 引言 一.YUM在线安装 0.删除已安装的MySQL 1.添加MySQL Yum Repository 2.选择MySQL版本 3.安装MySQL 4. ...
- MVP模式的Android 调用系统拍照,相册,剪裁,适配到7.0,修复拍照图片旋转问题
Android 调用系统拍照,相册,剪裁,适配到7.0,修复拍照图片旋转问题 直接上代码 首先添加拍照需要的权限 <uses-permission android:name="andr ...
- Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇
Oracle11g安装教程.配置实例.监听.客户端程序详解_Windows篇 文章目录 Oracle11g安装教程.配置实例.监听.客户端程序详解_Windows篇 前言 一.数据库的安装前准备,前提 ...
- android禁止下拉刷新,Android开发之无痕过渡下拉刷新控件的实现思路详解
相信大家已经对下拉刷新熟悉得不能再熟悉了,市面上的下拉刷新琳琅满目,然而有很多在我看来略有缺陷,接下来我将说明一下存在的缺陷问题,然后提供一种思路来解决这一缺陷,废话不多说!往下看嘞! 1.市面一些下 ...
最新文章
- 如何在node.js中发出HTTP POST请求?
- java文件下载大小限制,完整PDF
- JavaWeb学习总结(九)--JDBC入门
- Java中字符串和数字间转换
- java异常库,java中的异常详解
- authinfo.php,【nginxphp】后台权限认证方式
- Java LocalDate类| minusWeeks()方法与示例
- mongodb和SQL语句对应查找表
- 电脑时代计算机应用,【2017年整理】计算机应用与发展的神话时代.docx
- 请教如何保存matlab仿真出来的图,如何保存Matlab绘制出来的图像
- gsp 页面 html.dat,grails2.3.x在gsp显示html
- stm32固件库下载地址
- 各地区磁偏角和磁倾角查询网址及方法
- 空洞卷积详解(输入输出大小分析)
- 传奇3单机显示服务器进不去,传奇3私服单机 数据库连接不上 dafe
- 美国卡内基梅隆大学计算机排名,美国卡内基梅隆大学世界排名情况
- 核心设计——多种电源设计应用分享
- pandas读取csv写入mysql_使用python的pandas库读取csv文件保存至mysql数据库
- 资深投资人: VC的“增值平台”就是一坨狗屎
- 【MATLAB】MATLAB 仿真数字基带传输系统 — 双极性基带信号(余弦滚降成形脉冲)的眼图
热门文章
- 吃了这么久的外卖,灵机一动用python采集一下~
- 如何实现《电子签名法》要求的可靠电子签名?
- 【微信小程序】tabBar的使用
- ​新浪页游助手 v2.0.1 官方版
- uni-app使用iPhone手机真机调试(window)
- Ubtun系统如何测试网速
- 电装实验报告计算机联网,电装实验报告.doc
- chrome浏览器扩展安装
- 使用pygame.surface.subsurface() 来实现精灵动画
- 智能骨传导蓝牙耳机该如何选,分享几款不错的骨传导蓝牙耳机