使用意图创建选择器将文本消息发送到WhatsApp和SMS不再起作用

时间:2018-10-25 20:43:56

标签: android sms whatsapp

下面的代码一周前可以正常工作。目的是允许用户选择是否要使用WhatsApp或SMS发送文本消息,但是现在当我选择WhatsApp时,尽管SMS仍在工作,但它什么也没做。

看它正在打印的logcat:2018-10-25 18:28:28.915 2147-6714/? I/ActivityManager: START u0 {act=android.intent.action.SENDTO dat=smsto:xxxxxxxxxxx flg=0x3000000 cmp=com.whatsapp/.Conversation (has extras)} from uid 10096即使传递带有国家/地区代码的有效数字,它也正在打印smsto:xxxxxxxxxxx

是否有用于此目的的有效代码或有关此问题的信息?

fun sendMessageToNumber(number: String, text: String) {
    val cleanNumber = number.cleanText()
    val uri = Uri.parse("smsto:$cleanNumber")
    val sendIntent = Intent(Intent.ACTION_SENDTO, uri)
    sendIntent.putExtra("sms_body", text)
    context?.startActivity(Intent.createChooser(sendIntent, context.getString(R.string.fragment_account_chooser_message_title)))
  }

1 个答案:

答案 0 :(得分:1)

在我的一个项目中,我使用以下代码发送whatsapp消息:

fun sendWhatsappMsg(){
            var toNumber = "+91 xxxxx xxxxx" // contains spaces.
            toNumber = toNumber.replace("+", "").replace(" ", "")

            val sendIntent = Intent("android.intent.action.MAIN")
            sendIntent.putExtra("jid", "$toNumber@s.whatsapp.net")
            sendIntent.putExtra(Intent.EXTRA_TEXT, "Hello")
            sendIntent.action = Intent.ACTION_SEND
            sendIntent.setPackage("com.whatsapp")
            sendIntent.type = "text/plain"
            startActivity(sendIntent)
}

要发送短信,我使用了以下代码:

fun sendTextMsg(){
           val phone = "xxxxxxxxxx"
           val msg = "smsto:" + phone
           val smsUri = Uri.parse(msg)
           val smsIntent = Intent(Intent.ACTION_SENDTO, smsUri)
           startActivity(smsIntent)
}

您可以尝试一下。两者都为我工作。