1. ホーム
  2. android

[解決済み] Android - SMSメッセージの着信を確認する

2022-04-22 17:49:28

質問

SMSメッセージの受信を監視するアプリケーションを作成し、受信したSMSを介してプログラムを起動し、またSMSからコンテンツを読み取る必要があります。

ワークフロー

  • Android端末にSMSを送信
  • 自己実行型アプリケーション
  • SMS情報の読み取り

解決するには?

public class SmsListener extends BroadcastReceiver{

    private SharedPreferences preferences;

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub

        if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){
            Bundle bundle = intent.getExtras();           //---get the SMS message passed in---
            SmsMessage[] msgs = null;
            String msg_from;
            if (bundle != null){
                //---retrieve the SMS message received---
                try{
                    Object[] pdus = (Object[]) bundle.get("pdus");
                    msgs = new SmsMessage[pdus.length];
                    for(int i=0; i<msgs.length; i++){
                        msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
                        msg_from = msgs[i].getOriginatingAddress();
                        String msgBody = msgs[i].getMessageBody();
                    }
                }catch(Exception e){
//                            Log.d("Exception caught",e.getMessage());
                }
            }
        }
    }
}

注: マニフェスト・ファイルに、BroadcastReceiver-を追加します。

<receiver android:name=".listener.SmsListener">
    <intent-filter>
        <action android:name="android.provider.Telephony.SMS_RECEIVED" />
    </intent-filter>
</receiver>

この権限を追加します。

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