【发布时间】:2014-05-30 16:49:06
【问题描述】:
有没有办法通过清单设置或类似的方式访问不同应用程序的原始数据?我正在尝试访问应用的原始 mp3 以在不同的应用上播放。
【问题讨论】:
标签: android mp3 uri android-mediaplayer
有没有办法通过清单设置或类似的方式访问不同应用程序的原始数据?我正在尝试访问应用的原始 mp3 以在不同的应用上播放。
【问题讨论】:
标签: android mp3 uri android-mediaplayer
如果“原始”是指另一个应用程序的 /res/raw/ 文件夹的内容,则不能。至少没有超级用户/根访问权限。
理论上,您可以在您的 PC 上手动拆开相关应用程序,并根据需要使用它们的资源,但这可能充其量是违反他们的 TOS,最坏的情况是侵犯版权。
但是,如果您可以控制包含您想要访问的资源的相关应用,则可以定义 ContentProvider 以允许公共访问。也许应用程序甚至已经有一个?
编辑:您现在已经澄清您可以访问这两个应用程序,因此您当然可以与自己分享您喜欢的任何内容。
如上所述,您可以使用ContentProvider 在应用程序之间共享资源或信息。在这种特殊情况下,您希望共享一个音频 *.mp3 文件,我建议使用继承自 ContentProvider 的 FileProvider。
我会将实现细节留给链接的官方 Android 文档,因为他们在解释方面做得比我以往任何时候都好。
简而言之:
附:作为一些睡前阅读,您可以查看链接到 github 存储库的替代实现,并解释 SO 自己的 CommonsWare 项目的用法:https://stackoverflow.com/a/14734310/1590950
【讨论】: