在 whatsapp 上分享音频文件
share an audio file on whatsapp
我正在开发一个允许与 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 启动并且我尝试发送给某人时,显示此错误:"Fail to share, please try again"。
当我更改此代码以发送文本时,它有效,但不适用于音频文件。有人知道为什么会发生这种情况以及如何解决它吗?
我怀疑错误的原因是您尝试共享的文件在您的应用程序中,而 WhatsApp 根本没有读取它的权限。您也不能简单地授予此权限(您不能选择性地授予其他应用程序访问您应用程序资源的权限),因此您需要将此文件复制到 SD 卡上的某个位置 - 然后使用该文件的 URI用于将意图发送到 WhatsApp 的 SD 卡。
更新:查看this question了解如何复制文件的详细信息。
我正在开发一个允许与 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 启动并且我尝试发送给某人时,显示此错误:"Fail to share, please try again"。
当我更改此代码以发送文本时,它有效,但不适用于音频文件。有人知道为什么会发生这种情况以及如何解决它吗?
我怀疑错误的原因是您尝试共享的文件在您的应用程序中,而 WhatsApp 根本没有读取它的权限。您也不能简单地授予此权限(您不能选择性地授予其他应用程序访问您应用程序资源的权限),因此您需要将此文件复制到 SD 卡上的某个位置 - 然后使用该文件的 URI用于将意图发送到 WhatsApp 的 SD 卡。
更新:查看this question了解如何复制文件的详细信息。