我正在尝试通过我的APP验证6位数字。收到特定的短信后,我想自动执行此操作。
我有一个可以接收消息的独立广播接收器文件。我收到它然后停止广播接收器。
我有两个问题:
我不确定如何在已打开的活动中插入6位数字?我是否需要将6位数放入某个共享偏好中,并使用活动中的计时器检查是否有任何值?
我不确定如何从短信中提取6位数字?文本格式为:“xxxx是您手机号码的一次性密码(OTP)。”
有人可以帮我吗?
谢谢!
答案 0 :(得分:1)
我不确定如何在已打开的活动中插入4位数字?我是否需要将4位数放入某个共享偏好中并使用活动中的计时器检查是否有任何值?
在您要执行某项操作的活动的onResume
中注册您的SMS BroadcastReceiver,并在onPause
中取消注册。
我不确定如何从短信中提取4位数字?文本格式为:“xxxx是您手机号码的一次性密码(OTP)。”
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.
}