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

描述
应用内更新,下载apk调用系统api进行安装,在android8.0+手机上无法安装,在android8.0以下可以安装成功,看了看google for android 官网得知android8.0权限控制的更严格,安装应用需要应用本身具有“安装未知来源”权限。

文章已迁移至,详细可已进入查看:UBGLOG

解决方案:

一,如果构建 compileSdkVersion<27
先判断应用是否具有“安装未知应用”权限,没有则引导开启,有则调起安装View
其次安装是需要判断大于ADK.API>=24,条件成立则apk文件uri需要从FileProvider中获取,否则安装最简单方式调起安装。

二,compileSdkVersion>=27
如果构建SDK版本在27版本及以上则不需要判断是否有“安装未知应用”权限,直接调起安装应用即可,系统会自动提示。

这里写图片描述

private void install(File file){
        Intent intent = new Intent();
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setAction(android.content.Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
        startActivity(intent);
    }
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值