`
lmx227
  • 浏览: 52041 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Android SMS PDU

阅读更多
7-bit编码:发送普通ASCII字符;
8-bit编码:通常用于发送数据消息;
UCS2编码:用于发送Unicode字符。

而一般的PDU编码由A B C D E F G H I J K L M十三项组成,其中这十三项的释义分别为:

A:短信息中心地址长度,2位十六进制数(1字节)。
B:短信息中心号码类型,2位十六进制数。
C:短信息中心号码,B+C的长度将由A中的数据决定。
D:文件头字节,2位十六进制数。 
E:信息类型,2位十六进制数。
F:被叫号码长度,2位十六进制数。
G:被叫号码类型,2位十六进制数,取值同B。
H:被叫号码,长度由F中的数据决定。
I:协议标识,2位十六进制数。
J:数据编码方案,2位十六进制数。
K:有效期,2位十六进制数。
L:用户数据长度,2位十六进制数。
M:用户数据,其长度由L中的数据决定。J中设定采用UCS2编码,这里是中英文的Unicode字符。

而其PDU协议说明如下:

PDU编码协议简单说明
例1 发送:SMSC号码是+8613800250500,对方号码是13693092030,消息内容是“Hello!”。从手机发出的PDU串可以是
08 91 68 31 08 20 05 05 F0 11 00 0D 91 68 31 96 03 29 30 F0 00 00 00 06 C8 32 9B FD 0E 01
对照规范,具体分析:
分段 含义 说明
08 SMSC地址信息的长度 共8个八位字节(包括91)
91 SMSC地址格式(TON/NPI) 用国际格式号码(在前面加‘+)
68 31 08 20 05 05 F0 SMSC地址 8613800250500,补‘F’凑成偶数个
11 基本参数(TP-MTI/VFP) 发送,TP-VP用相对格式
00 消息基准值(TP-MR) 0
0D 目标地址数字个数 共13个十进制数(不包括91和‘F’)
91 目标地址格式(TON/NPI) 用国际格式号码(在前面加‘+)
68 31 96 03 29 30 F0 目标地址(TP-DA) 8613693092030,补‘F’凑成偶数个
00 协议标识(TP-PID) 是普通GSM类型,点到点方式
00 用户信息编码方式(TP-DCS) 7-bit编码
00 有效期(TP-VP) 5分钟
06 用户信息长度(TP-UDL) 实际长度6个字节
C8 32 9B FD 0E 01 用户信息(TP-UD) “Hello!”
例2 接收:SMSC号码是+8613800250500,对方号码是13693092030,消息内容是“你好!”。手机接收到的PDU串可以是
08 91 68 31 08 20 05 05 F0 84 0D 91 68 31 96 03 29 30 F0 00 08 30 30 21 80 63 54 80 06 4F 60 59 7D 00 21
对照规范,具体分析:
分段 含义 说明
08 地址信息的长度 个八位字节(包括91)
91 SMSC地址格式(TON/NPI) 用国际格式号码(在前面加‘+)
68 31 08 20 05 05 F0 SMSC地址 8613800250500,补‘F’凑成偶数个
84 基本参数(TP-MTI/MMS/RP) 接收,无更多消息,有回复地址
0D 回复地址数字个数 共13个十进制数(不包括91和‘F’)
91 回复地址格式(TON/NPI) 用国际格式号码(在前面加‘+)
68 31 96 03 29 30 F0 回复地址(TP-RA) 8613693092030,补‘F’凑成偶数个
00 协议标识(TP-PID) 是普通GSM类型,点到点方式
08 用户信息编码方式(TP-DCS) UCS2编码
30 30 21 80 63 54 80 时间戳(TP-SCTS) 2003-3-12 08:36:45  +8时区
06 用户信息长度(TP-UDL) 实际长度6个字节
4F 60 59 7D 00 21 用户信息(TP-UD) “你好!”
若基本参数的最高位(TP-RP)0,则没有回复地址的三个段。从Internet上发出的短消息常常是这种情形。
注意号码和时间的表示方法,不是按正常顺序顺着来的,而且要以‘F’将奇数补成偶数。

在PDU Mode中,可以采用三种编码方式来对发送的内容进行编码,它们是7-bit、8-bit和UCS2编码。7-bit编码用于发送普通的ASCII字符,它将一串7-bit的字符(最高位为0)编码成8-bit的数据,每8个字符可“压缩”成7个;8-bit编码通常用于发送数据消息,比如图片和铃声等;而UCS2编码用于发送Unicode字符。PDU串的用户信息(TP-UD)段最大容量是140字节,所以在这三种编码方式下,可以发送的短消息的最大字符数分别是160、140和70。这里,将一个英文字母、一个汉字和一个数据字节都视为一个字符。

分享到:
评论

相关推荐

    短信收发PDU编码转换

    1. Convert ASCII to 7-bit PDU 2. Convert 7-bit, 8-bit and 16-bit PDU to ASCII 3. Decode/Parsing the hexadecimal (PDU) of SMS message 4. Encode ASCII characters to be sent as SMS ready string

    sms.rar_android sms_pdu_pdu sms_短信_短信 pdu

    关键词“android sms_pdu_pdu sms”揭示了这个压缩包内容与Android系统中处理短信(SMS)相关的PDU(Protocol Data Unit)编码和解码有关。PDU是GSM通信协议中的一种数据格式,它在短信传递过程中扮演着关键角色。 ...

    Sms.rar_MMS_android sms_android 短信_sms_sms android

    这个名为"Sms.rar"的压缩包包含了一个关于Android SMS(Short Message Service)功能的源码实现,特别提到了MMS(Multimedia Messaging Service)的支持,这允许发送和接收包含多媒体内容的消息。下面将详细解释这些...

    SMS.rar_android_android sms.zip_sms_sms android_sms java

    在Android平台上,短信服务(SMS)是移动应用开发中的一个重要组成部分。这个压缩包"SMS.rar"和"android_android sms.zip"包含的可能是一系列与在Android系统上编程短信功能相关的资源和代码示例。让我们深入探讨...

    android sms的发送以及接受

    在Android系统中,短信服务(SMS)是移动应用开发中不可或缺的一部分,允许用户发送和接收文本消息。本文将深入探讨如何在Android平台上实现短信的发送与接收功能。 首先,我们需要了解Android SMS服务的基础知识。...

    SMS.rar_android_android sms

    本文将深入探讨如何在Android中实现短信监听功能,基于标题"SMS.rar_android_android sms"和描述"Android开发小程序,实现对系统短信的监听"。 首先,我们要知道在Android中监听短信需要用到`BroadcastReceiver`类...

    android sms 调用示例

    在Android平台上,短消息服务(SMS)是应用与用户或者应用之间进行文本通信的主要方式之一。这个"android sms 调用示例"是关于如何在Android应用中集成短信功能的教程,包括发送短信和监听短信。下面我们将深入探讨...

    android SMS

    在Android平台上,短信服务(SMS)是移动应用开发中的一个重要组成部分,它允许用户发送和接收文本消息。在本文中,我们将深入探讨如何在Android中实现短信功能,包括相关的API、权限管理、创建发送短信的Intent以及...

    Android 短信编解码参考资料

    本.txt文档中记录了自身从事Android 移动开发中遇到的SMS PDU编解码问题的点点滴滴,其中记录了3gpp和3gpp2短信pdu的解码构成,通过对短信PDU编解码更加熟悉完成了业务功能需求,对从事android telephony业务的新手...

    smspdu:使用HTC Android手机从您的计算机发送原始PDU SMS

    短信 使用HTC Android手机从您的计算机发送原始PDU SMS(下载预编译的APK: ) ... smspdu侦听电话上的端口tcp / 2323,它期望以PDU提交格式的一行HEX编码的SMS。 PDU直接传递到sendRawPdu。 发送消息后,连接将关闭。

    Android代码-静默短信发送

    Android Silent SMS Ping Does not require rooted device SMS will not be delivered as standard SMS, target user will receive no visual notification about SMS being received  Description Payload ...

    Android send SMS and save SMS

    在Android平台上,发送短信和保存短信记录是两个重要的功能,它们涉及到系统级别的权限以及与SMS相关的API交互。本文将深入探讨这两个主题,并提供相应的代码示例。 ### 1. Android发送短信 在Android中,发送短信...

    android 发送SMS消息、监视传入的SMS消息

    在Android平台上,发送SMS(短消息服务)和监控接收到的SMS消息是常见的功能,尤其在开发涉及到消息通信的应用时。以下将详细讲解如何实现这两个功能,并提供相关的代码示例。 **一、发送SMS消息** 1. **权限申请*...

    android demo,SMS短信通知。

    在Android平台上,开发一款应用程序来实现SMS短信通知是一项常见的任务,尤其对于构建用户交互系统时。这个"android demo,SMS短信通知"项目就是一个实例,它展示了如何在Android应用中集成短信功能并提供通知服务。...

    Android 追踪和确认SMS消息传递.docx

    在Android开发中,追踪和确认SMS(Short Message Service,短信)消息传递是一个关键功能,尤其在需要确保消息发送成功和接收方已经接收到的情况下。以下将详细解释如何在Android应用中实现这一功能。 首先,要追踪...

    安卓Android源码——sms1.rar

    【Android 源码解析——短信模块 SMS】 在 Android 系统中,短信服务(SMS)是核心功能之一,它允许用户发送、接收和管理文本消息。本文将深入探讨 Android 源码中的短信实现,主要关注 SMS 相关的组件、数据存储...

    Android应用源码之sms.zip

    "Android应用源码之sms.zip"提供的源码很可能是关于如何在Android系统中处理短信功能的一个示例或学习资源。源码通常包含了完整的类、方法、变量和逻辑,可以帮助开发者深入理解Android SMS API的使用和实现细节。...

    PDU.rar_pdu

    PDU是“Protocol Data Unit”的缩写,它在通信领域,特别是GSM(全球系统移动通信)中,是用来描述短消息服务(SMS)数据包格式的专业术语。在短信传递过程中,PDU模式用于编码和解码短信内容,以便它们可以在不同的...

    android 操作sim卡

    这里的`iccId`是SIM卡ID,`index`是短信在SIM卡上的位置,`sms pdu`是短信的PDU编码形式,`sms status`是短信的状态。 ### 3. 权限和安全考虑 在AndroidManifest.xml中,需要声明相应的权限: ```xml ...

    SMSListener.rar_SMSListener_android_android SMSListener_android

    <action android:name="android.provider.Telephony.SMS_RECEIVED" /> ``` 然后,你需要创建一个`SMSReceiver`类,继承自`BroadcastReceiver`。在`onReceive()`方法中,你可以获取到短信的相关信息,如发件人、...

Global site tag (gtag.js) - Google Analytics