Android 如何使用uri访问不同应用程序的原始数据?

Android 如何使用uri访问不同应用程序的原始数据?,android,mp3,uri,android-mediaplayer,Android,Mp3,Uri,Android Mediaplayer,有没有办法通过清单设置或诸如此类的方式访问不同应用程序的RAW?我正在尝试访问一个应用程序的原始mp3,以便在另一个应用程序上播放。如果“原始”是指另一个应用程序的/res/raw/文件夹中的内容,则无法访问。至少没有超级用户/根用户访问权限 从理论上讲,你可以在你的电脑上手动分离有问题的应用程序,并在你希望的地方使用他们的资源,但这充其量可能违反他们的TOS,最坏的情况可能是侵犯版权 但是,如果您可以控制包含您想要访问的资源的相关应用程序,则可以定义一个允许公共访问的应用程序。也许这个应用程序

有没有办法通过清单设置或诸如此类的方式访问不同应用程序的RAW?我正在尝试访问一个应用程序的原始mp3,以便在另一个应用程序上播放。

如果“原始”是指另一个应用程序的
/res/raw/
文件夹中的内容,则无法访问。至少没有超级用户/根用户访问权限

从理论上讲,你可以在你的电脑上手动分离有问题的应用程序,并在你希望的地方使用他们的资源,但这充其量可能违反他们的TOS,最坏的情况可能是侵犯版权

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


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

正如我上面提到的,您可以使用一个应用程序在应用程序之间共享资源或信息。在这种情况下,您希望共享一个音频*.mp3文件,我建议您使用一个继承自

我将把实现细节留给官方的Android文档链接,因为他们在解释方面比我做得更好

但总而言之:

  • 保存音频文件的应用程序A定义了一个文件提供程序
  • 应用程序B向应用程序A发出文件A/的意向请求(具有可选身份验证)
  • 应用程序A可以立即返回文件,也可以向应用程序B提供文件选择
  • 应用程序B要么使用接收到的提供商并获取其文件,要么告诉应用程序A需要哪个文件
  • 应用程序A现在可以将所选文件传递给使用该文件的应用程序B

另外,作为一些睡前阅读,你可以看看这个链接到github repo的替代实现,并解释SO自己的Commonware中项目的用法:

我正在尝试使用我的一个应用程序的mp3 raw在另一个应用程序上播放。它们都使用相同的UID链接,应该可以正常工作。然后,您应该在提供资源的应用程序中定义ContentProvider,并在接收资源的应用程序中使用它。在我的答案中链接。不过,你会如何将mp3放入ContentProvider?似乎它只保存原始类型。我在上面编辑了我的答案,以包含符合新信息的答案。那么文件提供商是否允许访问应用程序的原始数据,或者是否重新定位原始数据?