我正在尝试使用Google的SMS检索器API进行自动SMS验证。我已按照此处的指示进行操作,但我的应用未收到任何短信。这是我所做的:
我在活动中添加了代码以启动SMS检索器客户端:
val client = SmsRetriever.getClient(this)
val retriever = client.startSmsRetriever()
retriever.addOnSuccessListener {
Log.i("loginActivity", "started smsretriever")
}
retriever.addOnFailureListener {
//Problem to start listener
}
Run Code Online (Sandbox Code Playgroud)
从日志中,我看到这成功启动。然后,将广播接收器与此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 -> {
}
}
}
Run Code Online (Sandbox Code Playgroud)
仅在SMS检索器客户端启动后5分钟发送超时事件时才触发。它永远不会触发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>
Run Code Online (Sandbox Code Playgroud)
就文本消息而言,我正在向自己发送此SMS消息:“ <#>您的代码是:123456验证哈希:”
知道我在做什么错吗?