关于Android6.0以后在线升级无法调出系统安装器的解决办法

由于Android6.0以后系统将权限分为普通权限和危险权限,还有两个特殊权限SYSTEM_ALERT_WINDOW(设置悬浮窗,进行一些黑科技)和WRITE_SETTINGS(修改系统设置),因此对于权限的申请,除了要在manifest中声明权限,还需要在运行时动态申请权限。所以某些操作会因权限问题,而使App无法正常使用,甚至崩溃。

而为了兼容Android7.0以上系统的调用系统安装器功能,可以有两种解决方案:
第一,targetSdk设置成小于23的值,方式可行但不推荐
这里写图片描述
第二,将安装的代码修改为
这里写图片描述
然后,manifest文件注册:
这里写图片描述
res建个xml文件夹
这里写图片描述

注意:以上需要获取读写内存权限,在不属于自己app的目录写入文件是不负责任的行为。写到自己的data或者cache目录就不需要申请权限了。
getCacheDir()方法用于获取/data/data/application package/cache目录
getFilesDir()方法用于获取/data/data/application package/files目录
通过Context.getExternalFilesDir()方法可以获取到 SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
通过Context.getExternalCacheDir()方法可以获取到 SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据
使用上面的方法,当你的应用在被用户卸载后,SDCard/Android/data/你的应用的包名/ 这个目录下的所有文件都会被删除,不会留下垃圾信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值