首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SMS用户同意API情况下,当由于未满足消息条件而未触发广播时,如何处理错误情况?

在SMS用户同意API情况下,当由于未满足消息条件而未触发广播时,如何处理错误情况?
EN

Stack Overflow用户
提问于 2019-07-31 09:07:17
回答 1查看 215关注 0票数 1

在以下文档中:https://developers.google.com/identity/sms-retriever/user-consent/request

据指出,消息只有在满足以下条件时才会触发广播:

  1. 该消息包含一个4-10个字符的字母数字字符串,该字符串带有at 至少一个号码。
  2. 这条消息是由一个不在用户联系人中的电话号码发送的。
  3. 如果指定发件人的电话号码,则该邮件由该号码发送。

但是,没有提到如何处理上述任何一项标准都不满足且未触发广播的情况。我们如何对最终用户进行此操作?

我能够处理成功和超时的情况,处理这种情况将使代码更加用户友好。

代码语言:javascript
复制
switch (smsRetrieverStatus.getStatusCode()) {

    case CommonStatusCodes.SUCCESS:                    
        // Get consent intent
        Intent consentIntent = extras.getParcelable(SmsRetriever.EXTRA_CONSENT_INTENT);
        try {
            // Start activity to show consent dialog to user, activity must be started in
            // 5 minutes, otherwise you'll receive another TIMEOUT intent
            startActivityForResult(consentIntent, SMS_CONSENT_REQUEST);
        } catch (ActivityNotFoundException e) {
            Log.d("Exception","ActivityNotFound");// Handle the exception ...
        }
        break;

    case CommonStatusCodes.TIMEOUT:
        Log.e("Timeout-Error:","Listened for msg for 5minutes");
            break;
}
EN

回答 1

Stack Overflow用户

发布于 2021-03-03 18:01:52

您可以尝试使用CommonStatusCodes.ERROR,但我不确定这是否会触发时,收到的短信是明确无效的。

一个用户友好的解决方案可能是:设置一个30秒的计时器,例如,当您请求SMS/OTP时立即启动。当倒计时完成后,您将显示一个“重新发送SMS”按钮。因此,如果没有收到/检索SMS,您有一种更友好的方式让用户重试并请求另一条SMS。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57287084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档