即使授予权限,也无法读取或写入外部存储

时间:2021-06-12 09:36:22

标签: android android-permissions

有权限但不能读写

boolean write = checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED;
boolean read = checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED;

Log.e(TAG, "aaaa WRITE=" + write + ", READ=" + read);
File dir = Environment.getExternalStorageDirectory();
Log.e(TAG, "aaaa DIR=" + dir);
Log.e(TAG, "aaaa canRead=" + dir.canRead() + " canWrite=" + dir.canWrite() + " canExecute=" + dir.canExecute());

印刷品:

2021-06-12 12:30:07.256 3196-3196/ aaaa WRITE=true, READ=true
2021-06-12 12:30:07.257 3196-3196/ aaaa DIR=/storage/emulated/0
2021-06-12 12:30:07.260 3196-3196/ aaaa canRead=false canWrite=false canExecute=true

2 个答案:

答案 0 :(得分:0)

这已从 API 29 中弃用,以改善用户隐私,因此针对 API 29 或更高版本的应用将无法直接访问返回的路径。

这是替代方案文档的链接 https://developer.android.com/reference/android/os/Environment#getExternalStorageDirectory()

答案 1 :(得分:0)

requestLegacyExternalStorage 添加到清单文件:

 <application
    ...
    android:requestLegacyExternalStorage="true"
    ...>