如何使用uri访问其他应用程序的原始文件?

时间:2014-05-30 16:49:06

标签: android mp3 uri android-mediaplayer

有没有办法通过清单设置或任何类型的东西访问不同应用的原始数据?我正在尝试访问应用程序的原始mp3以在不同的应用程序上播放。

1 个答案:

答案 0 :(得分:0)

如果是" raw"你的意思是另一个应用程序/res/raw/文件夹的内容,那么你就无法做到。至少没有SuperUser / Root访问权限。

理论上,您可以在PC上手动拆分有问题的应用程序,并按照您的意愿使用他们想要的资源,但最多可能是违反他们的服务条款以及最严重的版权侵权。

但是,如果您可以控制包含您要访问的资源的相关应用,则可以定义ContentProvider以允许公共访问。也许应用程序甚至已经有一个?


编辑:您现在已经澄清了您可以访问这两个应用程序,因此您当然可以与自己分享您喜欢的任何内容。

如上所述,您可以使用ContentProvider在应用之间共享资源或信息。在这种特殊情况下,您希望共享音频* .mp3文件我建议FileProvider继承自ContentProvider

我会将实施细节留给正式的Android文档链接,因为它们可以比我更好地解释它。

简而言之:

  • App A包含音频文件,用于定义FileProvider。
  • App B向App A发出对该文件的Intent请求(带有可选的身份验证)
  • App A可以立即返回文件,也可以选择向App B提供文件。
  • App B要么使用收到的提供者并获取其文件,要么告诉App A它想要哪个文件。
  • App A现在可以将所选文件传递给消耗它的App B.

P.S。作为一些睡前阅读,您可以查看链接到github仓库的这个替代实现,并解释SO自己的CommonsWare项目的使用情况:https://stackoverflow.com/a/14734310/1590950