我使用此代码已有好几年了,并且效果很好:
final Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
sharingIntent.setType("audio/mpeg");
sharingIntent.putExtra(Intent.EXTRA_STREAM,
SoundProvider.getUriForSound(getContext(), sound));
getActivity()
.startActivity(Intent.createChooser(sharingIntent,
getContext().getString(R.string.share)));
我的SoundProvider
生成的URI开始于content://
它由拾取FileProvider
(实际上是相同的SoundProvider
)。该提供程序从我的raw
文件夹中读取音频文件。
声音可以在WhatsApp中直接播放(而不是通用文件),并以ID3标签中的正确标题显示。
这已经完美地起作用了,并且仍然可以用Telegram / Dropbox等实现,但是直到几个月前的WhatsApp最近更新为止,它都失败了,并显示消息“共享失败,请重试”。
是否有人知道WhatsApp所做的任何更改并遇到类似的情况?
我必须通过将声音复制到来解决此问题external-files-dir
。
我不知道为什么whatsapp突然不再接受来自所服务raw
目录的文件FileProvider
,而其他应用仍然没有问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句