Android 交付意图的pdu是否包含短信发送对象的电话号码?
我正试图在onReceive of delivery广播接收器中找到从意向PDU向其发送短信的人的电话号码,如下所示Android 交付意图的pdu是否包含短信发送对象的电话号码?,android,pdu,Android,Pdu,我正试图在onReceive of delivery广播接收器中找到从意向PDU向其发送短信的人的电话号码,如下所示 @Override public void onReceive(Context context, Intent intent) { ThizLog.d(TAG, "Inside onReceive"); Bundle bundle = intent.getExtras(); Object[] messages = (Object[]) bundle.get
@Override
public void onReceive(Context context, Intent intent) {
ThizLog.d(TAG, "Inside onReceive");
Bundle bundle = intent.getExtras();
Object[] messages = (Object[]) bundle.get("pdus");
SmsMessage[] sms = new SmsMessage[messages.length];
for (int n = 0; n < messages.length; n++) {
sms[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
}
for (SmsMessage msg : sms) {
// Verify if the message came from our known sender
ThizLog.d(TAG,"!!! " + msg.getOriginatingAddress());
}
switch (getResultCode()) {
case Activity.RESULT_OK:
// SMS delivered
break;
case Activity.RESULT_CANCELED:
/*
* SMS not delivered, show SMS_NOT_DELIVERED_MESSAGE
*/
Toast toast = Toast.makeText(context, SMS_NOT_DELIVERED_MESSAGE, Toast.LENGTH_LONG);
// shows toast on left top corner increase the zero value to
// slide it right and down
//toast.setGravity(Gravity.TOP | Gravity.LEFT, 0, 0);
toast.show();
break;
}
}
这是可能的,Android的原生短信应用程序可以做到这一点。我认为您没有从收到的意图中正确获取pdu。它将是额外键“pdu”下的单个pdu,而不是数组 试试这个:
public void onReceive(Context context, Intent intent) {
String pdu=intent.getStringExtra("pdu");
...
}
public void onReceive(Context context, Intent intent) {
String pdu=intent.getStringExtra("pdu");
...
}