使用Android SmsRetrieverClient进行SMS验证未解析消息

使用Android SmsRetrieverClient进行SMS验证未解析消息,第1张

概述尝试按照以下步骤实施SMS自动读取以进行验证:https://developers.google.com/identity/sms-retrieverequest1)宣告lateinitvarsmsRetrieverClient:SmsRetrieverClientprivatelateinitvarsmsReceiver:SmsBrReceiver2)初始化并在登录活动onCreate上注册它们smsRetri

尝试按照以下步骤实施SMS自动读取以进行验证:
https://developers.google.com/identity/sms-retriever/request

1)宣告

lateinit var smsRetrIEverClIEnt: SmsRetrIEverClIEntprivate lateinit var smsReceiver: SmsBrReceiver

2)初始化并在登录活动onCreate上注册它们

smsRetrIEverClIEnt = SmsRetrIEver.getClIEnt(this)smsReceiver = SmsBrReceiver()val intentFilter = IntentFilter()intentFilter.addAction(SmsRetrIEver.SMS_RETRIEVED_ACTION)applicationContext.registerReceiver(smsReceiver, intentFilter)val task = smsRetrIEverClIEnt.startSmsRetrIEver()task.addOnSuccessListener(OnSuccessListener<VoID> {    smsReceiver.setTimeout()})task.addOnFailureListener(OnFailureListener { e ->    showCodeinput()})

3)为SmsRetrIEver制作broadcastReceiver

inner class SmsBrReceiver : broadcastReceiver() {    var h = Handler()    var r: Runnable = Runnable { doTimeout() }    fun setTimeout() {        h.postDelayed(r, 600000)    }    overrIDe fun onReceive(context: Context, intent: Intent?) {        val action = intent.action        if (SmsRetrIEver.SMS_RETRIEVED_ACTION == action) {            cancelTimeout()            val extras = intent.extras            val status = extras!!.get(SmsRetrIEver.EXTRA_STATUS) as Status            when (status.statusCode) {                CommonStatusCodes.SUCCESS -> { // not called

4)短信格式

\u200b\u200bPlease enter code: 1111 /appKeyXf56

SMS末尾的应用程序密钥与已安装的应用程序签名密钥生成的密钥相匹配,如下所述:
https://developers.google.com/identity/sms-retriever/verify#computing_your_apps_hash_string

收到SMS后,不会调用CommonStatusCodes.SUCCESS,但是5分钟后会调用CommonStatusCodes.TIMEOUT.

什么东西少了?以防万一电话认证的gradle声明是:

com.Google.androID.gms:play-services-auth-API-phone:16.0.0classpath "com.Google.gms:Google-services:4.2.0

解决方法:

解决方案是缩短消息,尽管它似乎不超过140个字节.将SMS文本更改为大约30个字符后,无需其他更改即可自动读取SMS.

总结

以上是内存溢出为你收集整理的使用Android SmsRetrieverClient进行SMS验证未解析消息全部内容,希望文章能够帮你解决使用Android SmsRetrieverClient进行SMS验证未解析消息所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1210126.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-04
下一篇2022-06-04

发表评论

登录后才能评论

评论列表(0条)

    保存