AndroidがSMS認証コードを自動的に読み込んで入力します。

Androidアプリで自動的にSMS認証コードを読み取り、適切なフィールドに入力するには、以下の手順に従うことができます:

  1. AndroidManifest.xmlファイルに読み取り権限を追加してください。
<uses-permission android:name="android.permission.READ_SMS" />
  1. ブロードキャストレシーバーを作成してください。これは、SMSの受信イベントを監視するBroadcastReceiverクラスを継承したクラスを作成します。
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();
                        // 在这里处理短信内容,提取验证码并填入相应的字段
                    }
                }
            }
        }
    }
}
  1. BroadcastReceiverの登録:認証コードを読み取る必要があるアクティビティのonCreateメソッドでBroadcastReceiverを登録します。
IntentFilter intentFilter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
SmsReceiver smsReceiver = new SmsReceiver();
registerReceiver(smsReceiver, intentFilter);
  1. onReceiveメソッド内のSmsReceiverで、正規表現や他の方法を使用して、SMS認証コードを抽出し、対応するフィールドに入力してください。

たとえば、「【アプリ名】認証コード:123456、他人に漏らさないでください」という形式の認証コードがある場合、正規表現を使用して認証コードを抽出することができます。

Pattern pattern = Pattern.compile("验证码:(\\d+)");
Matcher matcher = pattern.matcher(messageBody);
if (matcher.find()) {
    String verificationCode = matcher.group(1);
    // 将验证码填入相应的字段
}
  1. Android 4.4以降のバージョンの制限により、他のアプリのメッセージ内容を直接取得できません。他のアプリの認証コードを読み取る必要がある場合は、ユーザーが手動で許可するか、アプリをデフォルトのメッセージアプリに設定する必要があります。
  2. ユーザーが許可を与えた後にSMSの認証コードを読み取る必要があります。実行時の権限を使用して許可を取得できます。

これは、Androidアプリで自動的にSMSの認証コードを読み取り、適切なフィールドに入力する基本的な手順です。具体的なアプリケーションや要件に応じて、適応的な調整や最適化が必要な場合もあります。

bannerAds