【问题标题】:Access files of another App inside the Download folder - Android 10+访问下载文件夹中另一个应用程序的文件 - Android 10+
【发布时间】:2021-12-04 17:32:12
【问题描述】:

试图弄清这种完全混乱的范围存储。

所以我将 App A 生成的一些文件(日志)存储在 Download 文件夹中。

我正在使用 Mediastore/ContentResolver,只要它来自 App A,读取或写入访问都没有问题。

但是应用 B 需要读取这些文件,问题就来了。 使用 Mediastore/ContentResolver 的方式相同,但这些文件似乎对查询不可见。

下载应该是共享存储,但文件确实生成为 -rw-rw--- 这意味着其他人没有权限,这可以解释为什么 App B 看不到来自 App A 的文件,如果它们不在同一组。

存储访问框架方法可以解决这个问题吗? Thi 还没有尝试过,因为弹出系统窗口绝对不是我想要的应用程序的用户体验。

谢谢。

【问题讨论】:

    标签: android file android-permissions file-permissions mediastore


    【解决方案1】:

    如果第二个应用通过 MANAGE_EXTERNAL_STORAGE 具有“所有文件访问权限”,它也可以列出第一个应用的文件。

    否则,您可以让第二个应用的用户使用存储访问框架的 ACTION_OPEN_DOCUMENT 选择那些文件。

    您最好将文件存储在子目录中,因为第二个应用程序可以使用 ACTION_OPEN_DOCUMENT_TREE 选择完整目录并列出所有文件。

    【讨论】:

    • 我相信 MANAGE_EXTERNAL_STORAGE 现在在提交到 playstore 时是合理的,在我的情况下我认为这应该很困难,我真的不需要访问这些文件的所有存储。所有文件都存储在下载文件夹内的子文件夹下。所以 SAF 应该是这种方式......试图避免它我认为它真的破坏了简单性和用户体验......谢谢。
    • 如果你想在没有用户交互的情况下完成所有应用程序,甚至可以将其文件存储在 getExternalFilesDir() 或 getFilesDir() 中,并扩展 ContentProvider 以让应用程序列出两个文件并读取它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 2015-11-09
    相关资源
    最近更新 更多