我的问题是我想发送特定类别和特定编码的 SMS 消息。 (0 类和 7 位编码)。
检查 Android.Telephony.SmsManager 和 SmsMessage 时,您无能为力。 SmsManager 提供了两个功能 SendTextMessage 和 SendDataMessage。如果您只是想向某人发送普通短信,第一个就可以正常工作。 所以我想 SendDataMessage 是我不知何故需要使用的功能。但是我不知道如何使用它。而且在网上(我能找到)似乎没有任何人使用此功能的示例。
有谁知道有什么可以帮助我的吗? :-) 要么如何发送 Class0 7 位编码的短信,要么如何正确使用 SendDataMessage 函数。
最佳答案
sendDataMessage
函数添加了它自己的用户数据头,UDH
,由应用程序端口号和无类 TP-Data-Coding-Scheme 组成的信息,8位数据 0x04
(在 SmsMessage 代码库中找到)
SendTextMessage
函数将使用 GSM7packed 编码和 0x00
的 TP-Data-Encoding-Scheme 发送消息 - 未压缩,默认(7 位)编码,无类。根据 GSM 03.38 规范
对于 0 类 7 位数据,您将在 TP-Data-Encoding-Scheme 字节位置寻找 0x10
值。
为此,需要控制所有发送的 PDU。目前,公共(public) android API 不支持此功能。但是,可以通过 reflection 完成(尽管非常不鼓励)在内部 API 上。
关于android - 在 Android 中编码 SMS 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2694500/