我的问题是我想发送特定类别和特定编码的短信。 (0 类和 7 位编码)。
当检查 Android.Telephony.SmsManager 和 SmsMessage 时,您无能为力。 SmsManager 提供两个功能
发送文本消息和发送数据消息。如果您只想向某人发送普通短信,第一个就可以了。
所以我猜想 SendDataMessage 是我需要使用的函数。但是我不知道如何使用它。而且网络上(我可以找到)似乎没有任何人使用此功能的示例。
有谁知道有什么可以帮助我的吗? :-)
如何发送 0 类 7 位编码短信,或者如何正确使用发送数据消息功能。
The sendDataMessage
函数添加它自己的用户数据头,UDH
,由应用程序端口号和无类别的 TP-Data-Coding-Scheme 组成的信息,8 位数据0x04
(发现于短信 https://cs.android.com/android/platform/superproject/+/master:frameworks/base/telephony/java/com/android/internal/telephony/gsm/SmsMessage.java代码库)
the SendTextMessage
函数将使用 GSM7packed 编码和 TP-Data-Encoding-Scheme 发送消息0x00
- 未压缩,默认(7 位)编码,无类。根据 GSM 03.38 规范
对于 0 类、7 位数据,您需要寻找0x10
TP-Data-Encoding-Scheme 字节位置中的值。
为此,需要控制所有正在发送的 PDU。目前公共 android API 不支持此功能。但是,可以通过以下方式完成(尽管非常不鼓励)反射 https://web.archive.org/web/20170305192539/http://www.tutorialforandroid.com/2009_11_01_archive.html在内部 API 上。
See Android 中的短信原始 pdu https://stackoverflow.com/questions/3713094/sms-raw-pdu-in-android/5053721#5053721
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)