Android 8.0 解决不能自动安装APK问题(完美适配)
Android8.0之前
未知应用安装权限默认开启,如下图所示
Android8.0之后
未知应用安装权限默认关闭,且权限入口隐藏。
如何开启未知应用安装权限的入口,并设置允许安装?
1.在清单文件中添加权限
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
2.判断当前是否为8.0以上系统(在这之前也可以对7.0系统进行判断,这里代码没有贴出)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {boolean hasInstallPermission = isHasInstallPermissionWithO(context);if (!hasInstallPermission) {startInstallPermissionSettingActivity(context);return;}}
3.如果为8.0以上系统,则判断是否有未知应用安装权限
@RequiresApi (api = Build.VERSION_CODES.O)
private boolean isHasInstallPermissionWithO(Context context){if (context == null){return false;}return context.getPackageManager().canRequestPackageInstalls();
}
4.如果没有未知应用安装权限
,则需要手动开启
/*** 开启设置安装未知来源应用权限界面* @param context*/
@RequiresApi (api = Build.VERSION_CODES.O)
private void startInstallPermissionSettingActivity(Context context) {if (context == null){return;}Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);((Activity)context).startActivityForResult(intent,REQUEST_CODE_APP_INSTALL);
}
5.Activity回调(这一步根据需求来确定),下面代码是kotlin
写的
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {super.onActivityResult(requestCode, resultCode, data)if (resultCode== Activity.RESULT_OK ){when(requestCode){REQUEST_CODE_APP_INSTALL -> {onSettingCheckUpdate()}}}}
Android 8.0 解决不能自动安装APK问题(完美适配)相关推荐
- android apk自动安装包下载,Android实现应用下载并自动安装apk包
安装: String str = "/CanavaCancel.apk"; String fileName = Environment.getExternalStorageDire ...
- android 安装 apk 7.0,android 7.0及以上版本安装apk
第一:在AndroidManifest.xml文件下 android:name="android.support.v4.content.FileProvider" android: ...
- android.os.FileUriExposedException 自动安装APK报错 5分钟搞定Android 7.0+ FileProvider
android.os.FileUriExposedException 自动安装APK报错 5分钟搞定Android 7.0+ FileProvider 适配步骤: 1. 创建file_paths.x ...
- android 7 apk 安装程序,Android安装apk文件并适配Android 7.0详解
Android安装apk文件并适配Android 7.0详解 首先在AndroidManifest.xml文件,activity同级节点注册provider: android:name="a ...
- Android 4.0.4系统下实现apk的静默安装和启动
转自http://www.linuxidc.com/Linux/2013-02/79403.htm 未亲测 最近在Android 4.0.4系统下实现apk的静默安装和启动的功能,这里和大家分享一下, ...
- android apk安装过程,Android安装apk文件并适配Android 7.0详解
Android安装apk文件并适配Android 7.0详解 首先在AndroidManifest.xml文件,activity同级节点注册provider: android:name="a ...
- appium自动化脚本之自动安装apk包到手机
Appium基础篇3-第一个appium自动化脚本之自动安装apk包到手机 这篇,我们开始来一个实战练习,如何通过appium自动把电脑上一个安卓程序包给安装到一台安卓手机中.在写脚本之前,我们需要统 ...
- Android 10.0 PackageManagerService(三)APK扫描-[Android取经之路]
摘要:上一节讲解了PKMS的 权限扫描,扫描/system/etc/permissions中的xml,存入相应的结构体中,供之后权限管理使用. 这一节主要来讲讲APK的扫描. 阅读本文大约需要花费15 ...
- Android:从assets资源目录下安装apk
原文链接:http://blog.csdn.net/annkie/article/details/8150807 为了实现将第三方apk内置在assets资源目录下,再进行安装的目的. 首先将需要安装 ...
- 软件包ipython没有可安装候选_解决python 自动安装缺少模块的问题
解决python 自动安装缺少模块的问题 场景 我写个脚本给别人用,但是这个脚本中包含了一个第三方库. 当然对方执行的时候就会提示缺少,能否让python自动安装呢? 解决 try: import r ...
最新文章
- 用DFS 解决全排列问题的思想详解
- Activiti之 Exclusive Gateway
- json.stringify()与json.parse()的区别,json.stringify()的妙用
- ORACLE 查询所有表、外键、主键等信息
- php fckeditor demo,如何使用PHP添加fckeditor
- 将markdown文本转换为微信文章格式的解决方案
- Linux实战教学笔记24:SSH连接原理及ssh-key
- R语言学习历程回顾总结
- python通过GUI 界面搭建实现嵌套功能_搭建系统|升级基于财务数据的选股工具!从清单中剔除ST股和次新股...
- Windows各个系统勒索补丁下载地址
- 大智慧公式系统:条件选股之基本技巧
- Knowledge Tracing: A Survey阅读笔记
- Whai_springmvc笔记
- 扫地机器人朋友圈文案_扫地机器人方案
- linux ps输出项的含义,【整理】ps命令输出字段的含义
- 永磁同步直线电机仿真实例,仿真教学 maxwell16.0版本 12槽11极
- Android实现新闻列表
- MyEclipse8.6注册码代码
- Python 之圆周率 π 的计算
- 《程序员修炼之道-从小工到专家》读书笔记
热门文章
- Collecting package metadata (current_repodata.json): failed(解决方案)
- WPS以及Office 下 word 文档,使用通配符进行高级替换
- Word中如何删除分隔符?
- Vue提高20 日期选择器插件
- 浅谈 BOM、EBOM、MBOM
- 计算机无法启动bios,笔记本进不了bios的解决方法
- 免安装oracle配置方法,PLSQL免安装oracle配置
- html中 DPlayer 播放m3u8文件【方式二】
- 下面不属于python保留字_下面不属于Python保留字的是
- 波长间隔与频率间隔换算