0

我正在尝试制作一个共享应用程序“原始”文件夹内的子项的应用程序,但我没有得到它。该文件是共享的,但没有 .mp3 扩展名。我无法听到 Windows Media Player,但我手动输入了 .mp3 扩展名。有人知道我是如何自动获得 .mp3 扩展名的吗?将 URI 转换/重命名为 mp3 文件。

歌曲名称是在文件中注册的,我相信如果可以重命名,最后添加 .mp3 可能会起作用。但我无法重命名。

我正在使用这段代码:

意向分享;

Uri uri = Uri.parse("android.resource://"+this.getPackageName()+"/raw/name_musica"); 
share = new Intent(Intent.ACTION_SEND);
share.putExtra(Intent.EXTRA_STREAM, uri); share.setType("audio/*"); 
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
startActivity(Intent.createChooser(share, "Enviar via: "));
4

1 回答 1

0

文档EXTRA_STREAM指出它是:

内容:URI 保存与 Intent 关联的数据流,与 ACTION_SEND 一起使用以提供正在发送的数据。

android.resource:不是content:。任何响应都不需要ACTION_SEND知道如何处理android.resource: Uriin EXTRA_STREAM

将资源复制到本地文件系统并使用FileProvider,这样FileProvider可以给你一个content: Uri使用EXTRA_STREAM。或者,编写您自己的ContentProvider,直接从您的原始资源提供内容,并将 acontent: Uri用于您的提供程序。

另外,不要使用audio/*. 使用您正在共享的内容的实际具体 MIME 类型。

于 2018-03-10T15:32:42.703 回答