<!-- 8.0以上系统自动安装更新app会闪退,需要申请权限 -->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
private void onCallPermission() {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {// 判断是否可以安装未知来源的应用boolean couldAutoInstall = getPackageManager().canRequestPackageInstalls();if (couldAutoInstall) {doAppInstall();} else {if (ContextCompat.checkSelfPermission(this, Manifest.permission.INSTALL_PACKAGES) != PackageManager.PERMISSION_GRANTED) {ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.INSTALL_PACKAGES}, REQUEST_CODE_INSTALL_PACKAGE);} else {doAppInstall();}}} else {doAppInstall();}
}@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {super.onRequestPermissionsResult(requestCode, permissions, grantResults);if (requestCode == REQUEST_CODE_INSTALL_PACKAGE && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {doAppInstall();} else {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {// 跳转设置允许开启未知来源应用安装Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);List<ResolveInfo> resolveInfoList = getPackageManager().queryIntentActivities(intent, 0);if (resolveInfoList == null || resolveInfoList.isEmpty()) {return;}startActivityForResult(intent, REQUEST_CODE_OPEN_INSTALL_UNKNOWN);showOpenUnknownInstallDialog();}}
}@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == REQUEST_CODE_OPEN_INSTALL_UNKNOWN && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {boolean couldAutoInstall = getPackageManager().canRequestPackageInstalls();if (couldAutoInstall) {onCallPermission();}}
}

Android 8.0 app内覆盖安装相关推荐

  1. Android 8.0 App内切换语言不生效的问题记录

    国内大部分简单应该都只做了中文简体版,但是有部分项目需要面向国际化,甚至可能就是主打国外市场.因此我们有时候会遇到需要APP内做多语言切换的功能需求. 如何做多语言切换,网上资料还是很多的,本文也不是 ...

  2. 解决Android 7.0 App内切换语言不生效的问题

    Android7.0及以前版本,Configuration中的语言相当于是App的全局设置: 1 public static void changeAppLanguage(Context contex ...

  3. Android 设置apk之间不覆盖安装,7.0版本问题

    设置apk不覆盖安装,只需要修改build.gradle中的applicationId即可, 但是在安装7.0以上版本时, 需要把AndroidManifest.xml文件中关于7.0的私有目录配置中 ...

  4. android 8.0应用内安装包,Android 8.0 下载安装进入【安装未知应用】页面,两步简化一步...

    小菜昨天接到客户反馈的问题,说华为手机升级到 Android 8.0 系统以后,程序升级下载之后不能安装:找一个手机测试果然如此,每次下载完之后不跳转安装页面,重新进入程序又继续下载,之后依旧不跳转安 ...

  5. 小米4 Android 6.0 版本 Root 并安装 Xposed 框架攻略

    本文首发:http://prototypez.github.io/2016/05/16/root-and-install-Xposed-framework-on-XiaoMi4-with-Androi ...

  6. android 4.0电脑,电脑端安装Android4.0系统使用教程

    如今说到什么智能手机最火,那很多人肯定会说android系统的手机.如果你还没有Android手机,又想买一部试试,可是价格都不便宜,买来不适合自己怎么办?那么可以先在电脑上安装一个Android模拟 ...

  7. Android8.0+应用内更新安装apk失败

    描述 应用内更新,下载apk调用系统api进行安装,在android8.0+手机上无法安装,在android8.0以下可以安装成功,看了看google for android 官网得知android8 ...

  8. Android 9.0 APP中显示导航栏的menu键

    PS:以前  Android 4.0 时代,写了个APP,用屏幕底部菜单键提供两个刷新及退出按钮,但是现在 android 动不动就更新下,现在我手机已经到 9.0 版了,原来的导航栏三个小点点菜单键 ...

  9. 2023最新小额现金贷系统源码+可打包成APP/内附安装教程

    正文: 内附安装教程,本源码只作学习使用,切勿违规经营. 1.将源码上传到根目录并且解压. 2.导入数据库文件"cash-loan.sql"到你的数据库 3.修改域名配置文件:&q ...

最新文章

  1. spring Ioc本质
  2. u-boot的linux内核映像加载,基于U_Boot的Linux内核映像加载与引导功能实现.pdf
  3. 卸载CentOS 5.4自带的OpenJDK,配置新的Java环境
  4. Spring Boot中使用@Scheduled创建定时任务
  5. Spring的基本应用
  6. zabbix 之 磁盘发现脚本
  7. “文艺复兴” ConvNet卷土重来,压过Transformer!FAIR重新设计纯卷积新架构
  8. VISIO科学图形包-亲测VISIO2013可用,应该适用其他高级版本
  9. Halcon 3D 1 读取3d数据
  10. MapReduce经典案例实战
  11. 一元云购系统接入手机短信功能说明【V3版】
  12. [编程题]山寨金闪闪 (面试题)
  13. android 高仿 猿题库,猿题库(com.fenbi.android.gaozhong) - 9.17.2 - 应用 - 酷安
  14. linux下解压文件的几种小操作
  15. java写一个文件浏览器_【Java】 实现一个简单文件浏览器(2)
  16. ADXL345传感器介绍
  17. 鸿蒙-实践课程六 android、HarmonyOS 权限对比
  18. 世界上最美丽的英文情话
  19. VICTS(可变倾角连续横向枝节)天线的封闭表达式
  20. 继电保护计算机化,电力系统继电保护现状和发展.doc

热门文章

  1. C语言中文件操作相关的函数
  2. php fopen函数php,fopen函数介绍与使用方法详解
  3. 按照文件大小限制分卷压缩文件
  4. MySQL explain 例子_[MySql]explain用法及实践
  5. Linux(程序设计):66---简略版的线程池设计
  6. pythonfopen_PHP fopen() 函数
  7. Web——CSS选择器类型
  8. ChatGPT:智能问答,文案撰写神器
  9. ASP.NET Core Caching简介
  10. cc:to me 让你的邮箱成为Instapaper的替代品