Android6.0 Marshmallow发布以后,对用户权限做了一些更改,不再是安装时向用户获取权限。
而是需要在调用敏感操作时向用户询问是否赋予该权限的授权,对于用户来说,更安全了,对于开发者来说,就要做一些额外的工作去处理应用权限的申请。
比如现在要新建一个项目,写文件的一些处理,按照我们一贯的做法。
首先在项目AndroidManifest文件添加以下权限:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
然后写业务逻辑,运行。
但是在调试的时候却发现,执行dir.mkdirs()时始终返回false。
那么一定是我们在创建项目时声明targetSdkVersion 23+。
使用安卓23以上的版本,我们就不能像以前一样只在AndroidManifest文件中声明一下权限那么简单了。
以读写sd卡文件为例,我们需要三步:
1.在AndroidManifest文件声明文件读写权限:
<uses-per