Я пытаюсь использовать API Google Retriever для автоматической проверки SMS.Я следовал инструкциям здесь , но мое приложение не получает SMS-сообщений.Вот что я сделал:
Я добавил код в свою деятельность, чтобы запустить клиент для извлечения SMS:
val client = SmsRetriever.getClient(this)
val retriever = client.startSmsRetriever()
retriever.addOnSuccessListener {
Log.i("loginActivity", "started smsretriever")
}
retriever.addOnFailureListener {
//Problem to start listener
}
Из журналов я вижу, что это начинается успешно.Затем я добавляю свой широковещательный приемник с этим 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 -> {
}
}
}
Это срабатывает только тогда, когда событие TIMEOUT отправляется через 5 минут после запуска клиента получения SMS.Он никогда не срабатывает для SMS-сообщений.
Наконец, я зарегистрировал получателя в Манифесте:
<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>
С точки зрения текстового сообщения, я отправляю себе это SMS-сообщение: "<#> Ваш код: 123456 проверочный хеш: "
Есть идеи, что я делаю не так?