gpt4 book ai didi

android - "deliveryIntent"在 Android SMS 框架中如何工作?

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:53:31 25 4
gpt4 key购买 nike

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com