8.0自动更新失败的问题

最近在项目中发现在更新应用时,一直闪退,看的我一脸懵逼,看了下手机的内存里面有下好的apk,说明应用是下载下来了,既然下载没问题那问题出在哪里了,查看log发现在安装时崩溃了,很烦,自己的7.0的华为p9没一点问题啊,后来百度了一下发现是8.0的权限问题,我去现在谷歌没发布一版权限都要出点问题。搞得安卓越来越不好弄了。下面给大家说下怎么解决。

最简单的方式就是在清单文件里加上下面这句,给他安装未知来源应用的权限,其实这个权限对用户也算不错,这里说个题外话国内安卓的市场太凌乱了,苹果就没有安卓的自动更新功能它必须发布新的版本到市场才行,光这点ios的兄弟就少写不少的代码,安卓则不行,市场太多没办法这样搞,只能自己写升级,这样的好处是不用发布到市场升级也没问题。

<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
使用了上述权限基本就能解决问题了,但是有的手机明明设置了权限,可还是不行,打开设置一看权限没开。这时候就要添加一下判断了
 if (response.body().exists()) {
                            body = response.body();
                            if (Build.VERSION.SDK_INT >= 26) {
                                boolean b = getPackageManager().canRequestPackageInstalls();//这是系统提供的方法判断是否开启权限
                                if (b) {
                                    openfile(mctx, response.body(), ".apk");
                                } else {
                                    showToast("请您开启安装应用的权限");
                                    Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
                                    startActivityForResult(intent, INSTALL_PACKAGES_REQUESTCODE);
                                }
                            }else {
                                openfile(mctx, response.body(), ".apk");
                            }
                        } else {
                            showToast("文件不存在");
                        }
这样当用户手动开启后再onActivityResult里安装应用就好了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值