SMSManager的android文档 sendTextMessage 函数
public void sendTextMessage (String destinationAddress, String scAddress, String text,
PendingIntent sentIntent, PendingIntent deliveryIntent)
deliveryIntent 如果不为NULL,则在将邮件传递给收件人时广播此PendingIntent。状态报告的原始pdu位于扩展数据(“pdu”)中
我无法理解SMS将SMS传递到destinationAddress或scAddress时是否触发了deliveryIntent,并且“状态报告的原始pdu在扩展数据(pdu)中”的含义是什么,以及如何获取该报告? 。
感谢您的努力。
最佳答案
当消息传递到destinationAddress
时广播。
当注册的Intent.getExtras().get("pdu")
收到您使用BroadcastReceiver
定义的Intent广播时,可以从PendingIntent.getBroadcast(Context, int requestCode, Intent, int flags)
中提取PDU。例如:
private void sendSMS(String phoneNumber, String message) {
String DELIVERED = "DELIVERED";
PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
new Intent(DELIVERED), 0);
registerReceiver(
new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent arg1) {
Object pdu = arg1.getExtras().get("pdu");
... // Do something with pdu
}
},
new IntentFilter(DELIVERED));
SmsManager smsMngr = SmsManager.getDefault();
smsMngr.sendTextMessage(phoneNumber, null, message, null, deliveredPI);
}
然后,您需要解析提取的PDU,SMSLib应该能够做到这一点。
关于android - "deliveryIntent"如何在Android SMS框架中工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9826917/