SMSManars sendTextMessage 函数的 Android 文档
public void sendTextMessage (String destinationAddress, String scAddress, String text,
PendingIntent sentIntent, PendingIntent deliveryIntent)
deliveryIntent 如果不为 NULL,则在将消息传递给收件人时广播此 PendingIntent。状态报告的原始pdu在扩展数据(“pdu”)中
我不明白当 SMS 传送到 destinationAddress 或 scAddress 时是否触发了 deliveryIntent 以及“状态报告的原始 pdu 在扩展数据(“pdu”)中”是什么意思以及如何获取该报告? .
感谢您的努力。
最佳答案
当消息传送到destinationAddress
时广播。
PDU可以从 Intent.getExtras().get("pdu")
中提取,当注册 BroadcastReceiver
接收到您使用 PendingIntent.getBroadcast(Context, int requestCode, Intent, int flags)
.例如:
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/