【问题标题】:How to Access Media files using raw paths in Android R -- Android 11如何在 Android R -- Android 11 中使用原始路径访问媒体文件
【发布时间】:2020-02-22 11:56:55
【问题描述】:

我们如何在 Android R -- Android 11 中使用原始路径访问媒体文件

根据

https://developer.android.com/preview/privacy/storage#media-files-raw-paths

据说we can read a device's media files using direct file paths and native libraries

Mediacolumns DATA 根据

已弃用

https://developer.android.com/reference/android/provider/MediaStore.MediaColumns#DATA

【问题讨论】:

标签: android mediastore android-11


【解决方案1】:

Google 提供的相应文档不完整,只有部分有用,尤其是出了名的缺乏示例。在尝试使我的应用与 Android 11 兼容时,我注意到了这种奇怪的行为(使用 File 访问方法):

  • 名为“/internal/bli/bla.db”的文件存在,但不可读。
  • 重命名为“bla.db.mp4”的文件变得可读。
  • 这也适用于“bla.db.jpg”。
  • 我的音乐收藏中的音频文件“whatever.mp4”是可读的。
  • 我的音乐收藏中任何名为“folder.jpg”的文件都无法读取。
  • 其中一个文件(复制为“mist.jpg”)将变得可读。
  • MANAGE_EXTERNAL_STORAGE 权限消除了所有这些限制。

这在我看来一团糟,但是:

“folder.jpg”无法访问的原因可能是它未包含在系统的图像数据库中,因为它已被识别为专辑封面图像。另一方面,所有文件扩展名为“.mp4”或类似文件的文件都列在相应的音频媒体数据库中,因此可以访问。

这引出了我的假设:Andorid 媒体数据库中列出的所有文件(音频或图像或电影或气味)都可以使用 File 方法通过其本机文件路径以读取模式访问,也许也适用于本机(C 或 C++)程序。所有其他文件,包括用于专辑封面的图像,都存在,但不可读。

【讨论】:

    猜你喜欢
    • 2020-06-07
    • 2020-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    • 1970-01-01
    相关资源
    最近更新 更多