AndroidでSMS認証コードを自動取得する機能を実現する方法

SMSの自動取得機能を実現するには、以下の手順に従ってください。1. AndroidManifest.xmlファイルで、以下の権限を追加する:

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

<uses-permission android:name=”android.permission.READ_SMS” />


2.SMSを受信するためのBroadcastReceiverクラスを作成する:

public class SMSReceiver 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 messageBody = smsMessage.getMessageBody();

// 在这里处理短信内容

}

}

}

}

}

}


アクティビティに SMSReceiver を登録する

private SMSReceiver smsReceiver;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

smsReceiver = new SMSReceiver();

IntentFilter intentFilter = new IntentFilter(“android.provider.Telephony.SMS_RECEIVED”);

registerReceiver(smsReceiver, intentFilter);

}

@Override

protected void onDestroy() {

super.onDestroy();

unregisterReceiver(smsReceiver);

}


この実装により、アプリがフォアグラウンドで実行されているときにSMSReceiverが自動的にSMSを受信し、その内容をonReceiveメソッドで処理できるようになります。必要に応じて、SMS内容を解析し、認証コードなどの操作を取得できます。ただし、Android 4.4以降のバージョンではSMS_RECEIVEDブロードキャストに制限が課されているため、ユーザーがアプリをデフォルトのメッセージアプリとして選択した場合にのみSMSを受信できることに注意してください。

bannerAds