【问题标题】:How to check for delivery report when using "*0#" method?使用“*0#”方式时如何查看交货报告?
【发布时间】:2014-08-02 20:33:24
【问题描述】:

在我进一步解释之前,我想说这是一个 Xposed 模块,但我不相信我需要的信息依赖于任何 Xposed 知识。

我正在编写一个方法,它只知道在调用 SMSReceiver extends BroadcastReceiver 类的 onReceive 方法之前运行哪个(感谢 Xposed)。对于那些不熟悉 Xposed 的人,这只允许我在任何时候调用 onReceive 之前放置一个方法,从而允许我检查发送给它的参数、更改参数等等。

但这只是作为背景,我真正需要弄清楚如何检查收到的消息是否是送达报告。

我的网络 (giffgaff) 允许通过在消息前面加上 *0# 来发送发送报告,当其他手机收到该消息时,它会自动回复发送报告。例如,这会发生。

发件人发送:*0#Test

接收者看到:Test

发件人看到:Message [number here] to [number here] delivered at [time] on [date] Text: 'Test'

我尝试使用getResultCode() 来检查收到的文本是否为送达报告,但这似乎不起作用。有什么建议吗?

【问题讨论】:

    标签: android sms broadcastreceiver telephony


    【解决方案1】:

    据我从 GiffGaff 上的可用信息得知,您的送达报告是作为常规 SMS 消息发送的,在这种情况下,除了内容之外,没有什么可以将其与任何其他消息区分开来。我怀疑原始地址是否有任何帮助,因为它很可能是服务中心号码,而不是目标地址。

    因此,解决这个问题的唯一方法是解析消息并查看它是否符合您显示的模板,以及目标号码是否一致。

    【讨论】:

    • 我也是这么想的,谢谢你的确认。所以严格来说,这与标准的交付报告不同?
    • 如果标准交付报告是指通过 SmsManager API 提供的功能,那么是的,这有点不同。即使使用 API,提供者之间的交付报告状态和条件也有很大差异。在您的情况下,GiffGaff 只是通过向您发送一条常规的旧短信作为确认来处理它。
    • 非常有趣。接受您的回答,感谢您的帮助。
    猜你喜欢
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多