我正在编写一个应用程序,通过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()

07-27 23:51