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を受信できることに注意してください。