3

我的问题是我想发送某个类和某种编码的 SMS 消息。(0 类和 7 位编码)。

检查 Android.Telephony.SmsManager 和 SmsMessage 时,您无能为力。SmsManager 提供了两个函数 SendTextMessage 和 SendDataMessage。如果您只是想向某人发送普通短信,第一个可以正常工作。所以我想 SendDataMessage 是我需要使用的功能。但是我不知道如何使用它。网上似乎没有任何人使用此功能的示例(我可以找到)。

有谁知道有什么可以帮助我的吗?:-) 如何发送 Class0 7 位编码的短信,或者如何正确使用 SendDataMessage 函数。

4

1 回答 1

6

sendDataMessage函数添加它自己的用户数据头,UDH由应用程序端口号和无类的 TP-Data-Coding-Scheme 组成的信息,8 位数据0x04(在SmsMessage代码库中找到)

SendTextMessage函数将使用 GSM7packed 编码和 TP-Data-Encoding-Scheme 发送消息0x00- 未压缩,默认(7bit)编码,无类。根据 GSM 03.38 规范

对于 0 类、7 位数据,您将0x10在 TP-Data-Encoding-Scheme 字节位置中寻找一个值。为此,需要控制所有正在发送的 PDU。目前,公共 android API 不支持此功能。但是,可以通过对内部 API 的反射来完成(尽管非常不鼓励)。

在 Android 中查看SMS 原始 pdu

于 2011-02-20T03:48:08.070 回答