在 Android 中自动从短信中选择特定文本

Pick specific text automatically from SMS in Android

我正在尝试通过我的应用程序验证 6 位数字。我想在收到特定短信后自动执行此操作。

我有一个单独的广播接收器文件可以接收消息。我收到它然后停止广播接收器。

我有两个问题:

  1. 我不确定如何在打开的 activity 中插入 6 位数字?我是否需要将 6 位数字放在某些共享首选项中,并使用 activity?

  2. 中的计时器继续检查是否有任何值
  3. 我不知道如何从短信中提取 6 位数字?文本格式是这样的:"xxxx is the One Time Password (OTP) for your mobile number."

有人可以帮我解决这个问题吗?

谢谢!

I am not sure on how to insert the 4 digit number in an activity which is Opened? Do I need to put the 4 digit in some shared preference and keep checking if there is any value using a timer from the activity?

在activity的onResume中注册你的SMS BroadcastReceiver,然后在onPause中取消注册。

I am not sure on how to extract the 4 digit from SMS? The text format is this: "xxxx is the One Time Password (OTP) for your mobile number."

public void onReceiver(Context context, Intent intent){
    Object[] pdus=(Object[])intent.getExtras().get("pdus");
    SmsMessage shortMessage=SmsMessage.createFromPdu((byte[]) pdus[0]);

    Log.d("SMSReceiver","SMS message text: "+
       shortMessage.getDisplayMessageBody()); // Here you get body of it, extract data whatever you need.
}