场景
我有两个应用程序,一个是Tracker App,它记录来电和去电并压缩这些文件,并将文件路径通过Inter-Process Communication
发送到主应用程序。它将这些文件上传到服务器。
现在我将这两个应用程序升级到 Android 11。在 Tracker 应用程序中,我正在使用 MediaStore.Files API
保存文件并尝试使用主应用程序中的文件路径读取这些文件。读取文件时File.canRead()
返回 false
在主应用程序中。甚至我试过MediaStore API
要读取这些文件,它会返回空 Cursor
.
在这里我有几个问题。
MANAGE_EXTERNAL_STORAGE
的条件?访问存储中所有文件的权限? 我将文件保存在公共(public)目录
Documents/AppData/Audio
.请给我有关此的工作链接。任何帮助将不胜感激。谢谢
最佳答案
与 Android 11 MediaStore API 一样,仅返回媒体文件。
所以,我会回答你的相关问题。
Can I read files that are created by the Others app on Android 11? I read somewhere that you can't access others apps files in Android 11.
不!您无法访问由存储在该特定应用程序的个人存储中的其他应用程序创建的文件。
Is my app eligible for MANAGE_EXTERNAL_STORAGE permission to access all files in storage?
据我了解,您的应用程序不需要外部存储来存储数据,它也可以在私有(private)存储中完成,您可以在其中读取或写入数据。如果您的应用程序仍然有资格获得此权限,那么您现在仍然无法使用它。官方网站建议这样做,而不是要求此权限使目标 API 29 并在 list 中使用 android:requestLegacyExternalStorage="true"。
click here to read about it.
What will be the best way to handle this scenario?
您可以使用特定于应用程序的文件夹来存储您正在创建的存档,而不是使用外部音频路径。
Can ``` Storage Access Framework `` help me to handle this scenario?
我不太了解 IPC 如何在两个应用程序之间工作,所以我不能确切地说使用存储框架会更好。
关于android - 如何在 Android 11 中实现 New Storage API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67645587/