我正在开发一个允许与whatsapp共享音频文件的应用程序。
我正在使用此代码:
Uri uri = Uri.parse("android.resource://" + getPackageName() + "/raw/song.mp3");
Intent waIntent = new Intent(Intent.ACTION_SEND);
waIntent.setType("audio/mp3");
waIntent.setPackage("com.whatsapp");
waIntent.putExtra(Intent.EXTRA_STREAM, uri);
try {
startActivity(waIntent);
}catch (android.content.ActivityNotFoundException ex){
Toast.makeText(Fung.this,"Please, install Whatsapp", Toast.LENGTH_LONG).show();
}
但是当whatsapp启动并尝试发送给某人时,会显示以下错误:"无法分享,请再试一次"。
当我更改此代码以发送文本时,它可以工作,但不能用于音频文件。有人知道为什么会发生这种情况以及如何修复它?
答案 0 :(得分:0)
我怀疑错误的原因是您尝试分享的文件位于您的应用内,而WhatsApp根本没有权限阅读它。您也不能简单地授予此权限(您无法有选择地授予其他应用访问您应用资源的权限),因此您需要将此文件复制到SD卡上的某个位置 - 然后使用URI SD卡上的文件将意图发送给WhatsApp。
更新:有关复制文件的详细信息,请查看this question。