0

I try to receive code from the message and put it into EditText. I created SmsBroadcastReceiver

The I register my BroadcastReceiver:

val client = SmsRetriever.getClient(context)
        val task = client.startSmsRetriever()
        task.addOnSuccessListener {
            context.registerReceiver(
                smsBroadcastReceiver,
                IntentFilter(SmsRetriever.SMS_RETRIEVED_ACTION)
            )
        }
        task.addOnFailureListener {     
//error
   }

Then, when I get sms my BroadcastReceiver working, but status code always TIMEOUT:

  1. SmsRetriever.EXTRA_STATUS -> TIMEOUT
  2. SmsRetriever.EXTRA_SMS_MESSAGE -> empty

Here is my BroadcastReceiver code:

override fun onReceive(context: Context?, intent: Intent) {
        super.onReceive(context, intent)
        if (SmsRetriever.SMS_RETRIEVED_ACTION == intent.action) {
            intent.extras?.let { bundle ->
                val status = bundle.get(SmsRetriever.EXTRA_STATUS) as Status

                when (status.statusCode) {
                    CommonStatusCodes.SUCCESS -> {
                        val message = bundle.get(SmsRetriever.EXTRA_SMS_MESSAGE) as String
                        
                    }
                    CommonStatusCodes.TIMEOUT -> {
//timeout
                    }
                    else -> {
                    }
                }
            }
        }
    }

Thanks!

0 Answers0