我正在通过制作一个用户可以向特定的人发送WhatsApp消息的应用程序来练习。我尝试了一些我在互联网上找到的代码片段,但每当我尝试从实际设备发送WhatsApp消息时,我就是gettig错误"没有应用程序可以执行此操作"。
这是我的代码: -
public void sendMessage(View v) {
try
{
String whatsAppMessage = message.getText().toString();
Uri uri = Uri.parse("smsto:" + "9888873438");
Intent i = new Intent(Intent.ACTION_SENDTO, uri);
i.putExtra(Intent.EXTRA_TEXT, whatsAppMessage);
i.setType("text/plain");
i.setPackage("com.whatsapp");
startActivity(Intent.createChooser(i, ""));
}catch (Exception e) {
Toast.makeText(this, "WhatsApp not Installed", Toast.LENGTH_SHORT).show();
}
}
请帮忙。
答案 0 :(得分:1)
您收到没有应用程序可以执行此操作,因为您应该从代码中删除i.setType("text/plain");
:
String whatsAppMessage = message.getText().toString();
Uri uri = Uri.parse("smsto:" + "9888873438");
Intent i = new Intent(Intent.ACTION_SENDTO, uri);
i.putExtra(Intent.EXTRA_TEXT, whatsAppMessage);
i.setPackage("com.whatsapp");
startActivity(Intent.createChooser(i, ""));
不幸的是,您可以看到WhatsApp现在在对话活动中打开,但您没有在Intent
中设置的文字。这是因为WhatsApp并不支持这种分享。正如您在WhatsApp FAQ中所看到的那样,Intent支持的唯一支持是ACTION_SEND
:
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
sendIntent.setPackage("com.whatsapp");
startActivity(sendIntent);