【问题标题】:How to send message to particular whatsapp contact programmatically using intent? [duplicate]如何使用意图以编程方式向特定的whatsapp联系人发送消息? [复制]
【发布时间】:2021-05-13 20:10:59
【问题描述】:

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

【问题讨论】:

标签: android whatsapp


【解决方案1】:
     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);

更新:

上述技巧不能用于添加任何特定消息,因此这是新方法。在此处以国际格式传递用户 mobile,不带任何括号、破折号或加号。示例:如果用户是印度并且他的手机号码是 94xxxxxxxx ,那么国际格式将是 9194xxxxxxxx。不要错过在手机号码中添加国家代码作为前缀。

  private fun sendMsg(mobile: String, msg: String){
    try {
        val packageManager = requireContext().packageManager
        val i = Intent(Intent.ACTION_VIEW)
        val url =
            "https://wa.me/$mobile" + "?text=" + URLEncoder.encode(msg, "utf-8")
        i.setPackage("com.whatsapp")
        i.data = Uri.parse(url)
        if (i.resolveActivity(packageManager) != null) {
            requireContext().startActivity(i)
        }
    } catch (e: Exception) {
        e.printStackTrace()
    }
}

注意:此方法仅适用于在用户的 Whatsapp 中添加的联系人 帐户。

【讨论】:

  • 这还能用吗?
  • 我可以有shell命令吗?
【解决方案2】:

你必须像这样在 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);

【讨论】:

    【解决方案3】:

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

    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 上没有可用的号码,则在这种情况下打开警报对话框。

    希望这对你有帮助;-)

    【讨论】:

      【解决方案4】:

      解决办法

       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中打开聊天。

      希望它对你有用。 :)

      【讨论】:

      • 有未使用的字符串whatsAppMessage。
      猜你喜欢
      • 2013-09-24
      • 2013-10-05
      • 1970-01-01
      • 1970-01-01
      • 2015-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多