最近、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();
}
}
}