gpt4 book ai didi

java - 如何从我的 Android 应用程序通过 WhatsApp 向特定联系人发送消息?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:32:53 30 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序,我需要从 WhatsApp 向特定联系人发送消息。我试过这段代码:

Uri mUri = Uri.parse("smsto:+999999999");
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(mIntent);

问题是尽管选择了联系人,但 WhatsApp 没有收到参数“sms_body”。

最佳答案

有办法。确保您提供的联系人必须作为意向字符串传递,不带前缀“+”。国家代码应作为前缀附加到电话号码。

例如:'+918547264285' 应作为 '918547264285' 传递。这里开头的'91'是国家代码。

注意:将“YOUR_PHONE_NUMBER”替换为您要向其发送消息的联系人。

这是 fragment :

 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");
startActivity(sendIntent);

更新:

前面提到的 hack 不能用于添加任何特定的消息,所以这是新方法。在此处以国际格式传递用户 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()
}
}

Note: This approach works only with contacts added in user's Whatsappaccount.

关于java - 如何从我的 Android 应用程序通过 WhatsApp 向特定联系人发送消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36344892/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com