2

最近、SMS メッセージを受信し、メイン アクティビティのトーストとして表示するアプリをセットアップしました。アプリが SMS を受信すると、ブロードキャストを中止し、メッセージが受信トレイに入るのを停止します。

現在、電話が受信するすべてのメッセージでこれを行っていますが、特定の番号で SMS を受信したときにのみジョブを実行してトーストを表示したいと考えています。if ステートメントをレシーバー コードに挿入するケースであることはわかっていますが、どこに配置すればよいかわかりません。

SmsReceiver.java:

public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    Bundle extras = intent.getExtras();


    if (extras ==null)
        return;
    //toast
    Toast.makeText(context, "Received", Toast.LENGTH_LONG).show();

    Object[] pdus = (Object[]) extras.get("pdus");

    for (int i = 0; i < pdus.length; i++) {
        SmsMessage SMessage = SmsMessage.createFromPdu((byte[]) pdus[i]);
        String sender = SMessage.getOriginatingAddress();
        String body = SMessage.getMessageBody().toString();

        Intent in = new Intent("SmsMessage.intent.MAIN").putExtra("get_msg", sender+":"+body);

        context.sendBroadcast(in);
        this.abortBroadcast();

    }
}
}
4

3 に答える 3