【问题标题】:Open WhatsApp chat window to a specific number without passing a message using kotlin在不使用 kotlin 传递消息的情况下打开 WhatsApp 聊天窗口到特定号码
【发布时间】:2020-01-04 04:54:48
【问题描述】:
我需要将 WhatsApp 聊天窗口打开到特定号码,而不在意图中传递消息
我试图删除 sendIntent.putExtra(Intent.EXTRA_TEXT, userText) 但没有帮助,当我从应用程序发送时它说
“无法发送空消息”
这是完整的代码
val sendIntent = Intent("android.intent.action.MAIN")
sendIntent.action = Intent.ACTION_SEND
sendIntent.setPackage("com.whatsapp")
sendIntent.type = "text/plain"
sendIntent.putExtra("jid", number + "@s.whatsapp.net")
sendIntent.putExtra(Intent.EXTRA_TEXT, userText)
startActivity(sendIntent)
【问题讨论】:
标签:
android
android-intent
kotlin
message
whatsapp
【解决方案1】:
您可以使用 WhatsApp uri 打开特定的 whatsapp 聊天,而无需使用任何此类消息。这里num 可以是任何有效数字,包括国家代码,例如 911234567890
private fun openWhatsApp(num: String) {
val isAppInstalled = appInstalledOrNot("com.whatsapp")
if (isAppInstalled) {
val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://api.whatsapp.com/send?phone=$num"))
startActivity(intent)
} else {
// WhatsApp not installed show toast or dialog
}
}
要检查是否安装了 WhatsApp,您可以使用此方法
private fun appInstalledOrNot(uri: String): Boolean {
val pm = requireActivity().packageManager
return try {
pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES)
true
} catch (e: PackageManager.NameNotFoundException) {
false
}
}