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问题(完美适配)相关推荐

  1. android apk自动安装包下载,Android实现应用下载并自动安装apk包

    安装: String str = "/CanavaCancel.apk"; String fileName = Environment.getExternalStorageDire ...

  2. android 安装 apk 7.0,android 7.0及以上版本安装apk

    第一:在AndroidManifest.xml文件下 android:name="android.support.v4.content.FileProvider" android: ...

  3. android.os.FileUriExposedException 自动安装APK报错 5分钟搞定Android 7.0+ FileProvider

    android.os.FileUriExposedException 自动安装APK报错  5分钟搞定Android 7.0+ FileProvider 适配步骤: 1. 创建file_paths.x ...

  4. android 7 apk 安装程序,Android安装apk文件并适配Android 7.0详解

    Android安装apk文件并适配Android 7.0详解 首先在AndroidManifest.xml文件,activity同级节点注册provider: android:name="a ...

  5. Android 4.0.4系统下实现apk的静默安装和启动

    转自http://www.linuxidc.com/Linux/2013-02/79403.htm 未亲测 最近在Android 4.0.4系统下实现apk的静默安装和启动的功能,这里和大家分享一下, ...

  6. android apk安装过程,Android安装apk文件并适配Android 7.0详解

    Android安装apk文件并适配Android 7.0详解 首先在AndroidManifest.xml文件,activity同级节点注册provider: android:name="a ...

  7. appium自动化脚本之自动安装apk包到手机

    Appium基础篇3-第一个appium自动化脚本之自动安装apk包到手机 这篇,我们开始来一个实战练习,如何通过appium自动把电脑上一个安卓程序包给安装到一台安卓手机中.在写脚本之前,我们需要统 ...

  8. Android 10.0 PackageManagerService(三)APK扫描-[Android取经之路]

    摘要:上一节讲解了PKMS的 权限扫描,扫描/system/etc/permissions中的xml,存入相应的结构体中,供之后权限管理使用. 这一节主要来讲讲APK的扫描. 阅读本文大约需要花费15 ...

  9. Android:从assets资源目录下安装apk

    原文链接:http://blog.csdn.net/annkie/article/details/8150807 为了实现将第三方apk内置在assets资源目录下,再进行安装的目的. 首先将需要安装 ...

  10. 软件包ipython没有可安装候选_解决python 自动安装缺少模块的问题

    解决python 自动安装缺少模块的问题 场景 我写个脚本给别人用,但是这个脚本中包含了一个第三方库. 当然对方执行的时候就会提示缺少,能否让python自动安装呢? 解决 try: import r ...

最新文章

  1. 用DFS 解决全排列问题的思想详解
  2. Activiti之 Exclusive Gateway
  3. json.stringify()与json.parse()的区别,json.stringify()的妙用
  4. ORACLE 查询所有表、外键、主键等信息
  5. php fckeditor demo,如何使用PHP添加fckeditor
  6. 将markdown文本转换为微信文章格式的解决方案
  7. Linux实战教学笔记24:SSH连接原理及ssh-key
  8. R语言学习历程回顾总结
  9. python通过GUI 界面搭建实现嵌套功能_搭建系统|升级基于财务数据的选股工具!从清单中剔除ST股和次新股...
  10. Windows各个系统勒索补丁下载地址
  11. 大智慧公式系统:条件选股之基本技巧
  12. Knowledge Tracing: A Survey阅读笔记
  13. Whai_springmvc笔记
  14. 扫地机器人朋友圈文案_扫地机器人方案
  15. linux ps输出项的含义,【整理】ps命令输出字段的含义
  16. 永磁同步直线电机仿真实例,仿真教学 maxwell16.0版本 12槽11极
  17. Android实现新闻列表
  18. MyEclipse8.6注册码代码
  19. Python 之圆周率 π 的计算
  20. 《程序员修炼之道-从小工到专家》读书笔记

热门文章

  1. Collecting package metadata (current_repodata.json): failed(解决方案)
  2. WPS以及Office 下 word 文档,使用通配符进行高级替换
  3. Word中如何删除分隔符?
  4. Vue提高20 日期选择器插件
  5. 浅谈 BOM、EBOM、MBOM
  6. 计算机无法启动bios,笔记本进不了bios的解决方法
  7. 免安装oracle配置方法,PLSQL免安装oracle配置
  8. html中 DPlayer 播放m3u8文件【方式二】
  9. 下面不属于python保留字_下面不属于Python保留字的是
  10. 波长间隔与频率间隔换算