android 安装apk -99,Android APK 安装适配
Android 6.x 及以下
Android 6.x 及以下使用Uri.fromFile()获取文件的Uri,只需要配置上Action、DataAndType即可隐式启动系统安装器。
/**
Android 6.x 及以下安装 APK
Build.VERSION.SDK_INT>=Build.VERSION_CODES.N
@param context 上下文
@param file 要安装的APK文件对象
*/
public void installApk6x(Context context, File file) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_INSTALL_PACKAGE);
intent.setDataAndType(Uri.fromFile(file),
"application/vnd.android.package-archive");// APK的MimeType
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // 在新栈中启动
context.startActivity(intent);
}
Android 7.x
Android 7.0 起,引入了 FileProvider,APP需要手动配置对外暴露的目录并通过FileProvider.getUriForFile()获取文件的Uri。
/**
Android 7.x 安装APK,需要配置FileProvider
Build.VERSION.SDK_INT>=Build.VERSION_CODES.N
@param context 上下文
@param file 要安装的APK文件
@param authority FileProvider配置的authority
*/
public void installApk7x(Context context, File file, String authority) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_INSTALL_PACKAGE);
Uri uri = FileProvider.getUriForFile(context, authority, file); // 通过FileProvider获取Uri
intent.setDataAndType(uri, "application/vnd.android.package-archive");// APK的MimeType
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // 在新栈中启动
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); // 授权读取URI权限
context.startActivity(intent);
}
Android 8.x 及以上
需要先在清单文件中配置以下权限:
/**
Android 8.x 及以上安装APK,除配置FileProvider外,
还需要在清单文件中添加REQUEST_INSTALL_PACKAGES权限。
Build.VERSION.SDK_INT>=Build.VERSION_CODES.O
@param context 上下文
@param file 要安装的APK文件
@param authority FileProvider配置的authority
*/
public void installApk7x(Context context, File file, String authority) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_INSTALL_PACKAGE);
Uri uri = FileProvider.getUriForFile(context, authority, file); // 通过FileProvider获取Uri
intent.setDataAndType(uri, "application/vnd.android.package-archive");// APK的MimeType
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // 在新栈中启动
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); // 授权读取URI权限
context.startActivity(intent);
}
android 安装apk -99,Android APK 安装适配相关推荐
- Android自动伸展动画,android – 如何实现平滑的展开/折叠动画
我指的是在这里找到的扩展/折叠动画代码. 虽然这样做不好,动画不顺利. 我做一些登录代码. public static void expand(final View v) { v.measure(Me ...
- android计算器工程布局,Android 计算器布局测试
1 <?xml version="1.0" encoding="utf-8"?> 2 3 android:layout_width="ma ...
- Android应用安装apk版本升级,适配Android 8.0和Android 10.0下载安装,shell命令安装APK
shell命令安装 /*** 安装apk** @param path apk文件路径*/ public void installAPK(String path) {Log.i(TAG, "i ...
- Android APK应用安装原理(2)-查找APK并自动安装
Android每次启动的时候会自动安装位于特定目录下的APK,这个过程会在packageManagerService这个类的构造方法中进行,这里会创建多个目录用于预查找: [java] view pl ...
- 安装APK到android设备那些事儿
APK是AndroidPackage的缩写,即Android系统的应用软件安装包(apk).APK是类似Symbian Sis或Sisx的文件格式.通过将APK文件直接传到Android模拟器或And ...
- 探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法
前言 相信这样一个问题,大家都不会陌生, "有什么的方法可以使Android的程序APK不用安装,而能够直接启动". 发现最后的结局都是不能实现这个美好的愿望,而腾讯Android ...
- 【Android 逆向】APK 文件格式 ( Android 应用安装 | Zip 文件格式 | 使用 Python 代码提取 APK 文件 )
文章目录 一.Android 应用安装 二.APK 文件格式 三.使用 Python 提取 APK 文件 一.Android 应用安装 APK 是 Android 应用的安装文件 , 现在也有 AAB ...
- 【Android 插件化】VirtualApp 接入 ( 安装 APK 插件应用 | 启动插件 APK 应用 | MainActivity 安装启动插件完整代码 )
文章目录 一.安装 APK 插件应用 二.启动插件 APK 应用 三.MainActivity 完整代码 四.博客源码 一.安装 APK 插件应用 调用 VirtualCore.get().insta ...
- 【Android 安装包优化】APK 打包流程 ( 文件结构 | 打包流程 | 安装流程 | 安卓虚拟机 )
文章目录 一.APK 文件结构 二.APK 打包流程 三.APK 安装流程 四.安卓虚拟机 一.APK 文件结构 Android 应用的安装包时 以 " .apk " 为后缀的 A ...
- android shell用户界面,shell界面下安装和卸载Android应用程序(apk包)
安装 1. $ adb install apk文件名 安装系统应用 $ adb push apk文件名 /system/app 卸载 $ adb uninstall 包名 Home->设置-&g ...
最新文章
- git工具tig用法
- 数据库抽象层 PDO
- http协议的完整组成
- 【Boost】boost库asio详解8——TCP的简单例子1
- requestbody接收不到参数_使用Spring MVC解析嵌套参数在三种 ContentType 下的绑定方式...
- 超详细图解!【MySQL进阶篇】SQL优化-索引-存储引擎
- 【LeetCode笔记】143. 重排链表(Java、链表、栈、快慢指针)
- MySQL笔记-解决InnoDB: Could not find a valid tablespace file for 'mysql/innodb_index_stats'
- Linux上安装wkhtmltopdf,以及调试所遇到的问题
- .DateTimeToStr函数专用优化版
- 删除链表中重复的节点
- 47. Magneto Transaction Email(1)
- HTML基本语法总结
- python批量发送邮件_python批量发邮件
- k8s+docker集群整合搭建(完整版)
- python工资高还是java-python工资高还是java?python和java薪资对比
- 网页抓取及信息提取(二)
- 简单爬虫--爬取百度热点新闻标题
- 踩方格(空间压缩+动态规划+暴力递归)
- 【学习日记2023.4.25】之 前后端分离_前端工程化_Vue组件库Element_Vue路由_打包部署
热门文章
- matlab瓶盖盖严检查,口服液瓶盖密封性的质量检测方法你知道吗?
- 五一期间完成了某市交警系统的一个系统升级迁移项目
- 自然语言在公路交通各建设阶段运用
- 蓝桥杯嵌入式旧版子驱动问题-keil5下载卡死解决方法
- SSM社区医院卫生所病人患者随访信息管理javaweb网站系统设计与实现
- 常用的Unicode码表(汉字从A到Z、数字、英文)
- f和摄氏度怎么换算_华氏度和摄氏度的换算
- 01:电机控制的基本原理
- 零基础自学软件测试-项目经验-电商项目实战-测试用例设计-促销中心
- R语言绘制韦布尔分布图和泊松(Poisson)分布图,并为二项分布(泊松分布)绘制不同颜色