Android Studio中OTP SMS的只读数字

时间:2017-05-04 10:27:41

标签: android sms digit one-time-password

我正在尝试从Android中的短信中读取OTP。我能收到完整的信息。但是,我只需要只有短信数字的OTP。

请为此提出任何解决方案。 谢谢

2 个答案:

答案 0 :(得分:3)

试试这个

.vs

它将删除smsString = smsString.replaceAll("\\D+","");

中的非数字

答案 1 :(得分:1)

获取整个短信时使用此方法获取OTP:

                    final Pattern p = Pattern.compile( "(\\d{4})" );
                    final Matcher m = p.matcher(messages[0].getMessageBody());
                    if ( m.find() ) {
                        Log.e("SMSotp", String.valueOf(m.group()));
                    }
                    String[] singleCHAR= m.group().split("(?!^)");

在这里,如果你的OTP是n位,那么在模式编译中使用,(\ d {n})