在不使用Kotlin传递消息的情况下将WhatsApp聊天窗口打开到特定号码

时间:2019-08-31 04:24:34

标签: android android-intent kotlin message whatsapp

我需要将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)

1 个答案:

答案 0 :(得分: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
    }
}
相关问题