针对Android 8.0版本之后出现访问sd卡权限的问题,类似java.io.FileNotFoundException: /storage/emulated/0/data.txt: open failed: EACCES (Permission denied)
一:首先查看自己AndroidMainifest
(1)看看自己有没有这样的代码
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE "/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
(2)application里面
android:requestLegacyExternalStorage="true"
二:看自己的主程序里面又没有设置访问权限的函数
// Storage Permissions
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) {
System.out.println("Sorry");
// We don't have permission so prompt the user
ActivityCompat.requestPermissions(
activity,
PERMISSIONS_STORAGE,
REQUEST_EXTERNAL_STORAGE
);
}
}