android intent安装apk
2024-10-22 09:51:09
/**
* 安装apk
*
* @param context
* @param apkPath
*/
public static void installApk(Context context, String apkPath) {
try {
/**
* provider
* 处理android 7.0 及以上系统安装异常问题
*/
File file = new File(apkPath);
Intent install = new Intent();
install.setAction(Intent.ACTION_VIEW);
install.addCategory(Intent.CATEGORY_DEFAULT);
install.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
Uri apkUri = FileProvider.getUriForFile(context, "com.chao.app.fileprovider", file);//在AndroidManifest中的android:authorities值
Log.d("======", "apkUri=" + apkUri); install.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);//添加这一句表示对目标应用临时授权该Uri所代表的文件
install.setDataAndType(apkUri, "application/vnd.android.package-archive");
} else {
install.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
}
context.startActivity(install);
} catch (Exception e) {
Log.d("======", e.getMessage());
Toast.makeText(context, "文件解析失败", Toast.LENGTH_SHORT).show();
deleteFile(apkPath);
}
}
androidManifest.xml 里面注册provider
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.chao.app.fileprovider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
需要添加权限
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
在/res/xml/下新建 file_paths.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<paths>
<external-path path="" name="download" />
</paths>
</resources>
最新文章
- 分布式系统:怎么简单地解释Paxos算法?从二段提交、三段提交讲到Paxos
- [问题2014A06] 解答
- HDU 1176免费馅饼 DP数塔问题转化
- Javascript之类型检测
- 前台传到servlet的乱码问题要怎么处理
- C/C++输入输出总结
- 从linux启动到rootfs的挂载分析
- java15 IO装饰设计模式
- get client machine name
- CentOS6.x升级MySQL版本号5.1到5.6
- Python中csv模块解析
- (网页)jQuery UI 实例 - 日期选择器(Datepicker)
- [LeetCode] 104. Maximum Depth of Binary Tree ☆(二叉树的最大深度)
- idea 安装三方插件的方法
- [mysqli_escape]mysql转义两次
- webgl之五彩光源
- c++ 多个线程读一个线程写同步
- js 几个重要的特性
- 1-4 TCP/IP协议族
- JavaScript的学习要点