【发布时间】:2021-10-05 10:23:08
【问题描述】:
我想通过targetSdk=30 应用程序获取/storage 目录的子列表。
因此,我将android.permission.MANAGE_EXTERNAL_STORAGE 权限设置为AndroidManifest.xml,并创建了此代码。
(我不打算分发这个应用程序,所以授予这个权限没有问题。)
<manifest>
...
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission
android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
...
</manifest>
Environment.getStorageDirectory().list() // return null
但是,作为代码中的注释,此代码将始终返回 null...
你能帮帮我吗?
(我的英文不太好,所以请通过翻译服务。如果不清楚,请见谅。)
【问题讨论】:
-
您在任何版本的 Android 上都没有对该目录的读取权限。
-
READ_EXTERNAL_STORAGE 权限缺失。
-
对于所有 Android 版本,您已读取 /storage 的访问权限,但不适用于 Android 11 设备。
-
我忘了写我也授予
WRITE_EXTERNAL_STORAGE权限。我记得WRITE_EXTERNAL_STORAGE权限包含READ_EXTERNAL_STORAGE。所以,我认为WRITE_EXTERNAL_STORAGE没有问题。 -
感谢许多cmets!从每个人的 cmets 来看,我认为获取 '/storage' 的子列表看起来很困难......那么,是否有任何文档显示在 Android 11 上无法访问
/storage?
标签: android permissions android-11