随着android 系统的不断更新和发展,针对应用的权限管理也是越来越严格。这可是坑坏了我们这些搬砖的程序员,因为在一些上架平台,都一一宣布,以后的android应用 targetSdkVersion 必须最小为26,也就是说应用是android 8.0。将targetSdkVersion提升到26后,也随之出现了很多问题。今天只是来说一下,android 8.0下载自动安装时碰见的不自动安装的问题。

android 8.0以后有了一个权限叫安装未知应用或者是安装未知来源应用,如图:

如果想让应用自动安装下载的新版本apk,那么必须打开应用的这个权限,不然是不会自动安装的。打开方式

private void checkInstall(){

boolean haveInstallPermission;

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

//先获取是否有安装未知来源应用的权限

haveInstallPermission = getPackageManager().canRequestPackageInstalls();

if (!haveInstallPermission) {//没有权限

AlertDialog alertDialog = new AlertDialog.Builder(this)

.setTitle("请开启未知来源权限")

.setMessage("应用需要打开安装未知来源应用权限,请去设置中开启权限")

.setCancelable(false)

.setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

dialog.dismiss();

ToastUtils.showToast(SplashActivity.this,"您拒绝了权限,应用无法正常使用!");

finish();

}

})

.setPositiveButton("去设置", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

dialog.dismiss();

toInStallPermissionSettingActivity();

}

}).create();

alertDialog.show();

return;

}

}

//有权限,进行安装操作 安装就不写了

installAPK();

}

@RequiresApi(api = Build.VERSION_CODES.O)

private void toInStallPermissionSettingActivity() {

Uri packageURI = Uri.parse("package:" + getPackageName());

//注意这个是8.0新API

Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageURI);

startActivityForResult(intent, REQUEST_CODE_INSTALL_PERMISSION);

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (resultCode == RESULT_OK && requestCode == REQUEST_CODE_INSTALL_PERMISSION) {

checkInstall();//以防万一,再次检查权限

}

}

这样就让用户把权限打开,就可以自动安装了。如果用户拒绝,那就关闭应用吧,不然不能正常更新版本,老板也会找你的,不如干脆点,直接关闭应用

android下载完成不能自动安装失败,android 8.0以上自动安装apk失败的解决问题相关推荐

  1. android 下载多个文件怎么打开,Android 下载一个资料以及打开这个apk文件

    Android 下载一个文件以及打开这个apk文件 下载一个网络文件的函数如下 public static File downLoadFile(String httpUrl) { // TODO Au ...

  2. SUSE 11 安装sybase ASE 16.0 SP 02安装全过程

    SUSE系统下安装Sybase数据库 参考文档: https://wiki.deepin.io/mediawiki/index.php?title=Sybase_%E5%AE%89%E8%A3%85% ...

  3. win8mysql安装教程zip_mysql 8.0.18.zip安装配置方法图文教程(windows 64位)

    关于卸载以前安装版的数据库,大家可以参考一下这篇文章. 卸载前记住一定要记得复制保留以前的数据,安装版的数据是在 mysql5.7所有安装版本卸载教程,建议:大家卸载完一定要重启一下. 目录 1.先去 ...

  4. mysql8.0.17压缩包安装教程_mysql 8.0.16 压缩包安装配置方法图文教程

    本文为大家分享了mysql 8.0.16 压缩包安装配置方法,供大家参考,具体内容如下 运行环境:windows 10 x64 1.下载zip安装包: mysql8.0 for windows zip ...

  5. mysql 8免安装图解_mysql 8.0.21免安装版配置方法图文教程

    六步安装Mysql(免安装包的才可以选安装位置),供大家参考,具体内容如下 第一步:下载MySQL压缩包 mysql下载路径 直接点击链接也可以下载:mysql 8.0.21 第二步:解压到自己想要安 ...

  6. CentOS下安装Oracle 11.2.0.4(静默安装)

    这里不使用图形用户界面安装数据库,使用的是静默安装. 操作系统版本:CentOS release 6.5 (Final) 打算安装一个实例名为orcl的Oracle. 1. 检查硬件要求 1.1 内存 ...

  7. mysql 8.0 手动安装教程_mysql 8.0.13手动安装教程

    本文为大家分享了mysql 8.0.13手动安装教程,供大家参考,具体内容如下 一.步骤解读 1.下载MySQL 下载地址 选择 Downloads-->Community-->MySQL ...

  8. hadoop2.9.2安装hadoop_pid_dir_Hadoop3.2 +Spark3.0全分布式安装

    目前Apache官网已经推出了最新版的Haoop3.2和最新版的Spark3.0,比原来增加了很多新特性.Hadoop的安装主要是为Spark提供HDFS的支持和yarn的调度.那么我们将在本文介绍全 ...

  9. thinkphp 框架自动加载原理_thinkPHP5.0框架自动加载机制分析

    本文实例讲述了thinkPHP5.0框架自动加载机制.分享给大家供大家参考,具体如下: 概述 ThinkPHP5.0 真正实现了按需加载,所有类库采用自动加载机制,并且支持类库映射和composer类 ...

  10. android下载歌词代码,比较完整的android MP3 LRC歌词滚动高亮显示(附源码)

    1.以前的滚动只是安行来刷新,现在不是按行来滚动了,其实就是在一定时间内整体往上移动,比如说在1S内刷新10次,由于认得肉眼看起来像是滚动. 关键代码如下: float plus = currentD ...

最新文章

  1. 径向基函数插值(2)一维数据的插值
  2. javaSE各阶段练习题--流程控制2
  3. Python自动化开发学习13-联合唯一
  4. horizon client 无法识别域_iText for Mac(OCR识别图中文字工具)
  5. 25个CSS3 渐变和动画效果教程
  6. 不使用手机代理,进行手机抓包
  7. [leetcode]Search in Rotated Sorted Array II
  8. html刘海屏高度,iphone刘海屏网页适配方法
  9. 【福利派送】准备了八份小礼物,祝你七夕快乐!
  10. ObjC点击H5图片Native预览
  11. python进程之间修改数据[Manager]与进程池[Pool]
  12. 用proteus进行一位全加器/减法器的设计与验证
  13. TOGAF9-certification简介
  14. 什么是Java分布式?
  15. docx4j 操作word中的chart
  16. vin码识别已经诞生,还在傻乎乎手工录入吗?
  17. 神经网络发展历史时间统计表(留存收藏)
  18. word保存html格式批注没有了,word批注不见了 怎么显示批注
  19. P4017 最大食物链计数
  20. 慢聊Go之Go常见的Web 开发框架

热门文章

  1. 从 BBR 到 BBRv2
  2. 小学计算机画线反思,小学四年级数学上册《画平行线》教学反思
  3. UG二次开发GRIP一键建立装配模型树
  4. Java下载模板文件(Excel demo)
  5. 初级程序员闲暇之余,应该如何提升自我?
  6. kali linux 命令行设置WIFI
  7. 使用 HD Tune专业版5.50硬盘/固态硬盘使用程序将缩水的u盘恢复至原来的大小
  8. java分割String字符串成list
  9. Java学习之环境搭建
  10. Android5.0及以上实现隐藏标题栏及全屏