Android 在SMS用户同意API的情况下,由于未满足消息标准而未触发广播时,如何处理错误情况?
在以下文件中: 声明只有在满足以下条件时,消息才会触发广播:Android 在SMS用户同意API的情况下,由于未满足消息标准而未触发广播时,如何处理错误情况?,android,google-api,google-developers-console,sms-retriever-api,Android,Google Api,Google Developers Console,Sms Retriever Api,在以下文件中: 声明只有在满足以下条件时,消息才会触发广播: 消息包含一个4-10个字符的字母数字字符串,带有at 至少一个数字 这条信息是由一个不属于你的电话号码发送的 在用户的联系人中 如果您指定了发件人的电话号码, 这条消息是由那个号码发送的 但是,没有提到如何处理不满足上述任何标准且未触发广播的情况。我们如何向最终用户进行此操作 我能够处理成功和超时情况,处理这种情况会使代码更加用户友好 switch (smsRetrieverStatus.getStatusCode()) {
至少一个数字李>
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;
}
您可以尝试使用
CommonStatusCodes.ERROR
,但我不确定当收到的短信特别无效时是否会触发此操作
一个用户友好的解决方案可能是:设置一个30秒的计时器,例如,在您请求SMS/OTP时立即启动。当倒计时完成时,显示“重新发送短信”按钮。因此,如果没有收到/检索短信,您可以使用更友好的方式让用户重试并请求另一条短信