gpt4 book ai didi

收到 Android 短信,仅针对某些消息中止广播

转载 作者:太空狗 更新时间:2023-10-29 13:38:17 24 4
gpt4 key购买 nike

有几个示例说明如何在具有高优先级的广播接收器中读取 SMS,然后调用 abortBroadcast() 以阻止 Intent 到达其他应用程序的广播接收器。但是,它们似乎都没有考虑到 Intent 数据中可能存在多个 SMS 的事实,因此调用 abortBroadcast() 基本上会终止该特定 Intent 中的所有 SMS。

我正在尝试创建一个阻止来自特定号码的文本的应用程序,显然,当我在一个 Intent 中收到两条消息时,这是一个问题,一条来自被阻止的号码,一条来自未阻止的号码。

有没有一种方法可以创建一个新的 Intent 并根据收到的原始 Intent 重新广播一个或多个 SMS,以便我不想阻止的消息可以继续传送到任何应用程序期望它们?

最佳答案

我只是在研究同样的问题,我认为(不是肯定的)答案很简单。

广播包含一组 SmsMessage 对象,因为需要将大消息分解为多个较小的消息。但它仍然是一条短信。

您可能认识以下代码:

Object[] pdus = (Object[]) bundle.get("pdus");
SmsMessage[] msgs = new SmsMessage[pdus.length];

PDU 是“协议(protocol)描述单元”,是 SMS 消息的行业标准。一条大消息需要分解成几条较小的消息,这就是为什么它是一个对象数组。

所以我认为答案是,当您调用 abortBroadcast() 时,您永远不会取消一条以上的短信。

关于收到 Android 短信,仅针对某些消息中止广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8491263/

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