I'm trying to use Google's SMS Retriever API for Automatic SMS Verification. I have followed the directions here but my app is not receiving any SMS messages. Here is what I've done:
I've added the code in my activity to start the SMS retriever client:
val client = SmsRetriever.getClient(this)
val retriever = client.startSmsRetriever()
retriever.addOnSuccessListener {
Log.i("loginActivity", "started smsretriever")
}
retriever.addOnFailureListener {
//Problem to start listener
}
From the logs, I see this starts successfully. Then I add my broadcast receiver with this onReceive:
override fun onReceive(context: Context, intent: Intent) {
if (SmsRetriever.SMS_RETRIEVED_ACTION == intent.action) {
val extras = intent.extras
val status = extras.get(SmsRetriever.EXTRA_STATUS) as Status
when (status.statusCode) {
CommonStatusCodes.SUCCESS -> {
}
CommonStatusCodes.TIMEOUT -> {
}
}
}
This only triggers when a TIMEOUT event is sent 5 minutes after the SMS retriever client starts. It never triggers for SMS messages.
Finally, I've registered the receiver in the Manifest:
<receiver android:name=".receiver.SMSReceiver" android:exported="true">
<intent-filter>
<action android:name="com.google.android.gms.auth.api.phone.SMS_RETRIEVED"/>
</intent-filter>
</receiver>
In terms of the text message, I am sending myself this SMS message: "<#> Your code is: 123456 verification hash: "
Any idea what I'm doing wrong?