在开发过程中,使用File.mkdirs()会返回false创建文件夹失败,有可能是权限不够的原因,需要在AndroidManifest.xml中添加如下权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!--SDCard写权限-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <!--SDCard读权限-->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <!--在SDCard中创建与删除文件权限-->
但有的权限可能会报Permission is only granted to system apps错误,导致权限申请失败,
原因是运行时权限:API 23之前的版本都是自动获取权限,而从 Android 6.0 开始添加了权限申请的需求,更加安全。在android6.0以前,我们程序需要的权限我们一般只需要在AndroidManifest.xml中直接更新就好,然而Android 6.0在我们原有的AndroidManifest.xml声明权限的基础上,又新增了运行时权限动态检测。
如果你的程序在6.0以上的手机报权限的问题,简单粗暴最有效的解决方法是在工程下的build.gradle中的 targetSdkVersion 改为21或22,因为Android6.0系统或以上默认为targetSdkVersion小于23的应用默认授予了所申请的所有权限。