无法读取文件
在Android开发中,API23或以上版本读写文件时可能会出现如下错误:
open failed: EACCES (Permission denied)
或者无法正常读取文件即使你已经在注册文件AndroidManifest.xml中添加了相应的读写权限。
原因在于API23或以上版本需要进行动态权限申请,具体申请过程如下:
动态申请权限
在需要申请权限的Activity中添加一个权限申请函数:
private static final int REQUEST_EXTERNAL_STORAGE = 1;
private static String[] PERMISSIONS_STORAGE = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
public static void verifyStoragePermissions(Activity activity) {
// Check if we have write permission
int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (permission != PackageManager.PERMISSION_GRANTED) {
// We don't have permission so prompt the user
ActivityCompat.requestPe