android - getStorageDirectory 的子列表在 Android 11 上始终返回 null
问题描述
我想/storage
通过targetSdk=30
应用程序获取目录的子列表。因此,我设置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...
你能帮我么?
(我英语不好,所以要通过翻译服务。如果不清楚,请见谅。)
解决方案
从您的代码中删除 tools:ignore="ScopedStorage" 这一行并检查范围存储的权限。
您需要完全访问存储,因此需要为 android 11 或更高版本的设备获取范围存储。
推荐阅读
- unity3d - 基于真实世界地图绘制unity 3D Map
- solr - SOLR - 基于传递字符串中的 SOLR 字段搜索记录
- python-3.x - ClientConnectorCertificateError:无法连接到主机 discordapp.com:443,AWS 上的认证错误。(ec2)
- c++ - Winapi - SetWindowLongPtr in ShutdownBlockReasonCreate / Destroy implementation of JNI native code
- video-streaming - colab 中的实时视频
- php - 控制器显示 json 数据而不是 html
- c# - 如何更改 Blazor 应用程序中的默认图标提供程序?
- react-native - 世博会:无法解析模块 './debugger
- reactjs - Reducer 不会在触发动作时更新状态,因此不会更新 redux 存储/状态
- javascript - 从 config.js AngularJS 中提取基本 url