Android6.0以上文件读写问题
程序员文章站
2022-05-20 10:26:01
...
在开发项目中,遇见要进行文件操作,遇见Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)错误(如下权限已经添加)
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
原来是android 6.0之上的系统除了添加权限还要在你报错的代码前面添加请求权限的代码,如下:
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.requestPermissions(activity, PERMISSIONS_STORAGE,
REQUEST_EXTERNAL_STORAGE);
}
}
使用时,直接调用verifyStoragePermissions函数
推荐阅读
-
解决python大批量读写.doc文件的问题
-
linux 可执行文件与写操作的同步问题(文件读写操作产生的锁机制)
-
Android分享文件兼容7.0以上系统解决分析问题
-
Android7以上读写/data/data下其他APP私有文件的注意点
-
读写文件时内存溢出问题思考(OutOfMemoryError: Java heap space)
-
ruby on rails 读写yml文件(中文utf-8问题)
-
Android 6.0以上动态申请文件读写权限
-
Android 8.0 API 24.0 以上版本对SD卡的读写权限无效的问题
-
Android5.0以上SDCard文件删除问题
-
PHP基于文件锁解决多进程同时读写一个文件问题示例