我正在编写一个应用程序,通过SMS与其他设备通信。
我能够为接收到的sms实现一个侦听器。问题是它正在监听所有接收到的消息。我只想听听从特定号码收到的短信。
这是我的onReceive
方法。
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Bundle bundle = intent.getExtras();
Object messages[] = (Object[]) bundle.get("pdus");
SmsMessage smsMessage[] = new SmsMessage[messages.length];
for (int n = 0; n < messages.length; n++) {
smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
}
// show first message
Toast toast = Toast.makeText(context,
"Received SMS: " + smsMessage[0].getMessageBody(),
Toast.LENGTH_LONG);
toast.show();
}
最佳答案
没有办法仅仅根据意图过滤一个数字。
你所能做的就是像这样在接收器中获取电话号码:
SMSMesssage msg=SMSMessage.creatFromPdu(pdu)
String origination_no = msg.getDisplayOriginatingAddress()