我最近设置了一个应用程序,它将接收短信,然后将它们显示为主要活动的祝酒词。一旦应用程序收到一条短信,它将中止广播并阻止消息进入收件箱。
目前它对手机收到的所有消息都执行此操作,但我希望它仅在特定号码收到短信时执行其工作并显示敬酒。我知道这是将 if 语句放入我的接收器代码的情况,但我不太确定它应该放在哪里。
短信接收器.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();
}
}
}