要實現在Android應用中自動讀取短信驗證碼并填入相應的字段,可以按照以下步驟進行操作:
<uses-permission android:name="android.permission.READ_SMS" />
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
if (pdus != null) {
for (Object pdu : pdus) {
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu);
String messageBody = smsMessage.getMessageBody();
// 在這里處理短信內容,提取驗證碼并填入相應的字段
}
}
}
}
}
}
IntentFilter intentFilter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
SmsReceiver smsReceiver = new SmsReceiver();
registerReceiver(smsReceiver, intentFilter);
例如,假設驗證碼的格式為"【應用名】驗證碼:123456,請勿泄露給他人",可以使用正則表達式提取出驗證碼。
Pattern pattern = Pattern.compile("驗證碼:(\\d+)");
Matcher matcher = pattern.matcher(messageBody);
if (matcher.find()) {
String verificationCode = matcher.group(1);
// 將驗證碼填入相應的字段
}
以上就是實現在Android應用中自動讀取短信驗證碼并填入相應字段的基本步驟。根據具體的應用場景和需求,可能還需要進行一些適應性的調整和優化。