Android 11:无法从外部存储加载文件

Posted

技术标签:

【中文标题】Android 11:无法从外部存储加载文件【英文标题】:Adroid 11: can't load file from external storage 【发布时间】:2022-01-21 13:25:54 【问题描述】:

我想从“下载”文件夹中选择 pdf 文件并将其发送到聊天室。但是这个文件没有加载。当我使用 android 9 时,它工作正常。我很困惑,当我收到uri 时,我有这个值:content://0@media/external/file/0@media是什么?

【问题讨论】:

@media 是内容提供者 @A Farmanbar,是的,我知道。但是为什么在 @media 之前是 0 ?没事吧? 我不知道为什么它以 0 开头,但它与操作系统规范有关。 我得到消息 java.io.FileNotFoundException: /storage/emulated/0/DCIM/1.pdf: open failed: EACCES (Permission denied) 但我拥有所有权限。 它显示你的 URI 没问题并且指向一个有效的文件。但您没有读取或写入的权限。 【参考方案1】:

在 Android 11 上,应用无法再访问外部存储中任何其他应用的专用应用特定目录中的文件。为了保护用户隐私,在运行 Android 11 或更高版本的设备上,系统会进一步限制您的应用访问其他应用的私有目录。

你必须使用存储访问框架来访问android 10+中的外部存储

您可以使用ACTION_OPEN_DOCUMENTintent,打开系统的文件选择器应用程序。

看看:Open a file

【讨论】:

我认为你是对的。我会尝试这样做。非常感谢

以上是关于Android 11:无法从外部存储加载文件的主要内容,如果未能解决你的问题,请参考以下文章

无法在Android上写入外部存储

Android 11 拍照+录制视频保存到外部共享区域

在Android中将文件写入外部存储失败

Android 文件保存

Xamarin for android:无法从外部文件夹播放 mp3

Android14.2 外部文件存储和读取