从Retrivel API中的消息中提取OTP(自动SMS验证)

时间:2019-05-21 12:26:53

标签: java android google-api sms-verification

我使用Google Retriver API进行自动短信验证,现在一切正常。 Iam从广播接收器类接收短信。 这是我的短信。

  

<#> Waahan:您的验证码是:1453 jtN03jdhD6p

我只想从邮件中提取otp。

SMSBroadcastReceiver.java

public class SMSBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        if (SmsRetriever.SMS_RETRIEVED_ACTION.equals(intent.getAction())) {
            Bundle extras = intent.getExtras();
            Status status = (Status) extras.get(SmsRetriever.EXTRA_STATUS);

            switch(status.getStatusCode())
            {
                case CommonStatusCodes.SUCCESS:
                    String message = (String) extras.get(SmsRetriever.EXTRA_SMS_MESSAGE);

                    break;

                case CommonStatusCodes.TIMEOUT:

                    break;
            }
        }
    }
}

我已经搜索过,但是每个人都在使用电话.. iam使用检索API。 在此先感谢。

1 个答案:

答案 0 :(得分:2)

 case CommonStatusCodes.SUCCESS:
                String message = (String) extras.get(SmsRetriever.EXTRA_SMS_MESSAGE);
 String OTP = message.substring(message.lastIndexOf(":") + 1);

可能使用SubString(Start,End)函数