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:
- SmsRetriever.EXTRA_STATUS -> TIMEOUT
- 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!