Android报错:open failed: EACCES (Permission denied)
16lz
2021-01-26
使用Android读取SD卡数据的时候报错,原因是Android系统6.0之后除了在AndroidManifest.xml里面添加读写权限之外还需要在使用的时候手动请求一下权限。
1、在AndroidManifest.xml中添加读写权限:
2、在进行读写操作之前手动请求权限:
import android.support.v4.app.ActivityCompat;private static final int REQUEST_EXTERNAL_STORAGE = 1;private static String[] PERMISSIONS_STORAGE = { Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};/** * 在对sd卡进行读写操作之前调用这个方法 * Checks if the app has permission to write to device storage * If the app does not has permission then the user will be prompted to grant permissions */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); }}
说明:ActivityCompat是android-support-v4.jar里面的方法。
更多相关文章
- [Android(安卓)分享] APK权限大全
- Android(安卓)权限
- 使用Retrofit+LiveData时的Error/Loading处理
- PermissionsDispatcher动态权限申请
- Afinal 0.3 发布,Android快速开发框架
- 短信拦截与外拨电话拦截中的Action与权限
- Android(安卓)smb共享文件的下载
- Android(安卓)activity的回传数据
- Android(安卓)6.0 权限管理工具类