AndroidはSMS認証コードを自動的に取得します

AndroidアプリでSMS認証コードを自動取得するには、SMSレシーバー(BroadcastReceiver)を利用してSMSを受信し、そこから認証コードを抽出する必要があります。

まず、あなたの AndroidManifest.xml ファイルに、次のパーミッションを追加します。

<uses-permission android:name="android.permission.RECEIVE_SMS" />

それから、SMSを受信するためにBroadcastReceiverを継承したクラスを作成

public class SMSReceiver extends BroadcastReceiver {
private static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(SMS_RECEIVED_ACTION)) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
if (pdus != null && pdus.length > 0) {
for (Object pdu : pdus) {
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu);
String messageBody = smsMessage.getMessageBody();
// 在这里提取短信验证码并进行相应的处理
}
}
}
}
}
}

次に、Activity 又は Fragment でこの SMS レシーバーを登録します。 onCreate メソッドに次のコードを追加してください。

IntentFilter intentFilter = new IntentFilter(SMSReceiver.SMS_RECEIVED_ACTION);
SMSReceiver smsReceiver = new SMSReceiver();
registerReceiver(smsReceiver, intentFilter);

最後に、あなたのActivityまたはFragmentのonDestroyメソッドで SMS レシーバを解除登録します。

unregisterReceiver(smsReceiver);

Android 4.4 以降の機種ではパーミッションの制限により、ユーザーが実行時のパーミッションを許可した後にSMSを受信する必要があります。SMS 受信権限のリクエストには以下のコードを使用できます。

if (ContextCompat.checkSelfPermission(this, Manifest.permission.RECEIVE_SMS) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECEIVE_SMS}, REQUEST_SMS_PERMISSION);
}

リクエストパーミッションメソッドの結果は、onRequestPermissionResultメソッドで処理します。

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == REQUEST_SMS_PERMISSION) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 用户授予了短信接收权限
// 在这里注册短信接收器
} else {
// 用户拒绝了短信接收权限
// 在这里处理拒绝权限的情况
}
}
}

AndroidアプリでSMS認証コードを自動取得するには、SMSレシーバー(BroadcastReceiver)を作成し、SMSを受信したら認証コードを取り出して処理を行います。また、AndroidManifest.xmlファイルにSMS受信のパーミッションを記述し、実行時にユーザーに権限許可を求めてからSMSレシーバーを登録します。

bannerAds