android - 在 Android 中编码 SMS 消息

标签 android character-encoding sms pdu

我的问题是我想发送特定类别和特定编码的 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 上。

参见 SMS raw pdu in Android

关于android - 在 Android 中编码 SMS 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2694500/

相关文章:

git - 转换git仓库文件编码

PHP HTML 截断和 UTF-8

c++ - 如何将 Twitter 与 C++ 应用程序集成?

sms - 处理传入短信的最佳方式是什么?

android - 发送 50 多条导致问题的消息会导致一般性失败

android - 为什么 Activity 的构造函数中的 getApplicationContext() 会抛出空指针异常?

android - Camera2 Api android 上的 ImageReader

rest - application/* Content-Type 和 charset 属性

java - 如何在不更新 Android 应用程序的情况下升级数据库

android - 停止 OneSignal 通知显示在状态栏中