android8.0之程序员开发时的填坑经历

填坑一: 实现手动更新apk时的填坑历程,两个步骤:

步骤1)读写权限申请:

从Android6.0开始,在更新apk前需要先对本地读写权限进行动态申请,我们知道《uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"》和《uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"》属于同一个权限组,即:随便申请这两个中的某一个权限,那么另外一个权限也被自动申请。

然后在android7.0系统上需要在AndroidManifest文件中增加《provider android:name="android.support.v4.content.FileProvider"》,否则会报错,具体配置可在网上搜索。

然后这次android8.0来了,那么我的坑也来了:

我之前的代码里动态申请权限的权限是READ_EXTERNAL_STORAGE,读取本地文件都很爽歪歪,但运行到Android8.0之后,我擦,竟然报错,说我的权限被拒绝了,后来改成WRITE_EXTERNAL_STORAGE就没有问题了

步骤2)应用安装权限申请:

安卓8.0的软件安装机制发生了改变,不过很简单,只需要在AndroidManifest文件中增加权限:《uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"》就万事大吉了!

总结:实现手动更新app的功能,需要以下两个权限:

1.动态申请本地文件写权限:Manifest.permission.WRITE_EXTERNAL_STORAGE(当然在AndroidManifest文件中也需要静态添加该权限)

2.AndroidManifest文件中静态增加权限:《uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"》(无需动态申请)

你可能感兴趣的:(android8.0之程序员开发时的填坑经历)