如何使用intent以编程方式向特定whatsapp联系人发送消息?

时间:2016-11-23 09:54:17

标签: android whatsapp

我搜索了各种答案,但所有答案都已过时了。 每当我尝试使用发送时,只打开联系人选择器。

4 个答案:

答案 0 :(得分:4)

     Intent sendIntent = new Intent("android.intent.action.MAIN");
     sendIntent.setComponent(new  ComponentName("com.whatsapp","com.whatsapp.Conversation"));
 sendIntent.putExtra("jid",     PhoneNumberUtils.stripSeparators("YOUR_PHONE_NUMBER")+"@s.whatsapp.net");//phone number without "+" prefix

 startActivity(sendIntent);

答案 1 :(得分:1)

您必须在Intent中设置包名称

intent.setPackage("com.whatsapp");

完整示例:

Uri uri = Uri.parse("smsto:" + smsNumber);
Intent i = new Intent(Intent.ACTION_SENDTO, uri);
i.putExtra("sms_body", smsText);  
i.setPackage("com.whatsapp");  
startActivity(i);

答案 2 :(得分:1)

您只需在点击按钮上触发以下意图:

Uri mUri = Uri.parse("smsto:" + mobile1);
Intent mIntent = new Intent(Intent.ACTION_SENDTO, mUri);
       mIntent.setPackage("com.whatsapp");
       mIntent.putExtra("sms_body", "The text goes here");
       mIntent.putExtra("chat", true);
       startActivity(Intent.createChooser(mIntent, ""));

如果whatsapp上有可用号码,那么该特定用户聊天打开并发送您的消息。如果whatsapp上没有号码,那么就会打开警报。

希望这能帮到你; - )

答案 3 :(得分:1)

这是解决方案

 private void openWhatsApp(String number) {
    String whatsAppMessage = "Hello!";
    Uri uri = Uri.parse("smsto:" + number);
    Intent i = new Intent(Intent.ACTION_SENDTO, uri);
    i.setPackage("com.whatsapp");
    startActivity(i);
   }

调用上面的函数和传递号码,通过它来打开Whatsapp messenger中的聊天。

希望它对你有用。 :)