java.io.FileNotFoundException: /sdcard/test.png: open failed: EACCES (Permission denied)这个报错
,我是要截取一部分屏幕保存起来
Android11以后对存储有着更为严格的管理,尤其是12,授权必须跳转到存储授权界面完成,这是11的文档: Android 11 中的存储机制更新 | Android 开发者 | Android Developers https://developer.android.google.cn/about/versions/11/privacy/storage
if (Build.VERSION.SDK_INT >= 6.0) {
ActivityCompat.requestPermissions(this, new String[]{
Manifest.permission.ACCESS_FINE_LOCATION},1);
ActivityCompat.requestPermissions(this, new String[]{
Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
ActivityCompat.requestPermissions(this, new String[]{
Manifest.permission.CAMERA},1);
ActivityCompat.requestPermissions(this, new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE},1);
}
oncreat里直接申请了也不行
你三个权限一起申请,只获取到相机权限,size() 就不等于0 了,不一定就有文件读写权限
权限申请还有个onPermissionResult回调要处理
你这个应该是没有申请成功,可以打开应用的权限管理看看
1.权限没申请
2.你要访问的文件需要system.uid,即使你写了读SD卡权限也没用
3.Android10的需要添加android:requestLegacyExternalStorage="true"