Отправить текстовое сообщение в WhatsApp и SMS, используя намерение создать Chooser больше не работает - PullRequest
0 голосов
/ 25 октября 2018

Код ниже использовался неделю назад.Его цель - позволить пользователю выбрать, хочет ли он отправить текстовое сообщение с помощью 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 голосов
/ 26 октября 2018

В одном из моих проектов я использовал следующий код для отправки сообщения 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)
}

Вы можете попробоватьэтот.Оба работают на меня.

...