在Android中,可以使用短信監聽器來自動填充短信驗證碼。以下是一種實現方法:
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
public class SmsListener extends BroadcastReceiver {
private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(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 message = smsMessage.getMessageBody();
// 在這里處理接收到的短信,提取驗證碼并填充到相應的輸入框中
// 例如,可以使用正則表達式提取驗證碼
}
}
}
}
}
}
public class MainActivity extends AppCompatActivity {
private SmsListener smsListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
smsListener = new SmsListener();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
registerReceiver(smsListener, intentFilter);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(smsListener);
}
}
通過監聽接收到的短信,并提取其中的驗證碼,你可以將驗證碼填充到你所需的地方,例如一個輸入框中。請注意,以上代碼僅提供了一個基本的實現示例,你可能需要根據你的具體需求進行適當的修改和調整。