当前位置:首页 > 行业动态 > 正文

关于Android短信结构的奥秘与解析

Android 短信结构通常包含以下部分:1. 短信服务中心号码;2. 发送方号码;3. 时间戳;4. 消息内容。这些信息被封装在 PDU(协议数据单元)格式中进行传输。

Android短信结构

1、Sms表

_id:短信序号,是该短信在短信数据库中的唯一标识符。

thread_id:对话的序号,同一个会话中的短信具有相同的thread_id,用于将一组短信归为一组,表现为同一个联系人或一组聊天记录。

address:发件人地址,即手机号,表明该短信所属联系人的手机号码或名称。

person:发件人,如果发件人在通讯录中则为具体姓名,陌生人为null。

date:日期,long型,表示该短信的日期和时间,时间戳格式,单位是毫秒。

protocol:协议,0为SMS(短信),1为MMS(彩信)。

read:是否阅读,0为未读,1为已读。

status:短信发送状态,-1为未知状态,0表示完成,64表示等待,128表示失败。

type:短信类型,1为接收到的短信,2为发出的短信。

body:短信具体内容。

service_center:短信服务中心号码编号。

2、Pdu表

针对Android系统中的彩信服务而创建的数据表,存放用户发送和接收到的彩信信息。

包含多个与彩信相关的字段,如彩信的ID、发送日期、读取状态、彩信大小、优先级等。

相关问题与解答

1、如何查看Android手机中的短信数据库?

要查看Android手机中的短信数据库,通常需要获取root权限,因为短信数据库文件存储在/data/data/com.android.providers.telephony/databases/mmssms.db路径下,可以使用SQLite数据库管理工具来打开和查看这个数据库文件,从而了解其中的短信数据结构和内容。

2、如何通过程序读取Android手机中的短信内容?

在Android应用开发中,可以通过Content Provider来读取短信内容,首先需要在AndroidManifest.xml文件中声明读取短信的权限,然后使用ContentResolver查询短信的Content Provider,根据需要的条件(如短信类型、手机号等)获取相应的短信数据,要读取收件箱中的短信,可以使用ContentResolver query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)方法,其中uriTelephony.Sms.Inbox.CONTENT_URI

0