Android 短信模块分析 MMS数据库定义及结构整理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 短信模块分析 MMS数据库定义及结构整理相关的知识,希望对你有一定的参考价值。

一. mmssms.db

数据库mmssms.db中表的定义见表4.1至4.18所示:

 

 

表4.1 addr(彩信地址)

字段名

类型

描述

备注

_id

INTEGER PRIMARY_KEY

主键ID

系统生成

msg_id

INTEGER

The ID of MM whcich this 

Address entry belongs to.

Pdu主键关联

contact_id

INTEGER

The ID of contact entry in Phone Book

 

address

TEXT

The address text

 

type

INTEGER

Type of address,must be one

Of PduHeaders.BCC, PduHeaders.CC, PduHeaders.FROM, PduHeaders.TO.

 

charset  

INTEGER

Character set of entry

 

 

表4.2 android_metadata(语言)

 

字段名

类型

描述

备注

locale

TEXT

本地采用语言

例如:zh_CN

 

表4.3 attachments (附件)

字段名

类型

描述

备注

sms_id

INTEGER

短信id

FK,短信表主键

content_url

TEXT

url

 

offset

INTEGER

偏移量

 

表4.4 canonical_addresses(所以短信删除,此数据依然存在)

字段名

类型

描述

备注

_id

INTEGER PRIMARY_KEY

主键ID

系统生成

address

TEXT

发送或接收的电话号码

 

表4.5 drm()

字段名

类型

描述

备注

_id

INTEGER PRIMARY_KEY

主键ID

系统生成

_data

TEXT

处理加密解密的数据

 

表4.6 part(存储了彩信内容(文本、音乐、图象)的文件名(即在parts下面的文件名)、文件类型信息)

字段名

类型

描述

备注

_id

INTEGER PRIMARY_KEY

主键ID

系统生成

mid

INTEGER

The identifier of the message which this part belongs to.

Pdu主键关联

seq

INTEGER

The order of the part

所发送Part的顺序

 

ct

TEXT

The content type of the part

彩信数据类型

 

name

TEXT

The name of the part

Part名称

 

chset

INTEGER

The charset of the part.

字符集

 

cd

TEXT

The content disposition of the part.

内容配置

 

fn

TEXT

The file name of the part.

文件名称

 

cid

TEXT

The content ID of the part

 

cl

TEXT

The content location of the part

 

ctt_s

INTEGER

The start of content-type of the message

 

ctt_t

TEXT

The type of content-type of the message

 

_data

TEXT

The location(on filesystem) of the binary data of the part.

数据的位置

如:/data/data/com.providers.telephony/app_parts/PART_1300271462558

这个字段基本没什么用,不能直接读取这个文件,读取同样需要通过ContentProvider,URI为”conteng://mms/part”

text

TEXT

   

 

表4.7 pdu(彩信)

字段名

类型

描述

备注

_id

INTEGER PRIMARY_KEY

主键ID

系统生成

thread_id

INTEGER

Threads 的PK

FK

date

INTEGER

The date the message was sent.

发送日期

 

read

INTEGER

Has the message been read

已读为1,未读为0

 

m_id

TEXT

The Message-ID of the message.

 

sub

TEXT

The subject of the message, if present

主题

 

sub_cs

INTEGER

The character set of the subject, if present

主题所用字符集

 

ct_t

TEXT

The Content-Type of the message

 

ct_l

TEXT

The Content-Location of the message.

 

exp

INTEGER

The expiry time of the message.

过期时间

 

m_cls

TEXT

The class of the message.

 

m_type

INTEGER

The type of the message defined by MMS spec

 

v

INTEGER

The version of specification that this message conform.

 

m_size

INTEGER

The size of the message

彩信大小

 

pri

INTEGER

The priority of the message.

 

rr

INTEGER

The read-report of the message.

 

rpt_a

INTEGER

Whether the report is allowed.

 

resp_st

INTEGER

The response-status of the message.

 

st

INTEGER

The status of the message.

 

tr_id

TEXT

The transaction-id of the message.

 

retr_st

INTEGER

The retrieve-status of the message.

 

retr_txt

TEXT

The retrieve-text of the message.

 

retr_txt_cs

INTEGER

The character set of the retrieve-text.

 

read_status

INTEGER

The read-status of the message.

 

ct_cls

INTEGER

The content-class of the message.

 

resp_txt

TEXT

The response-text of the message.

 

d_tm

INTEGER

The delivery-time of the message.

 

d_rpt

INTEGER

The delivery-report of the message.

 

locked

INTEGER

Has the message been locked?

 

sim_id

INTEGER

   

seen

INTEGER

Indicates whether this message has been seen by the user. The "seen" flag will be used to figure out whether we need to throw up a statusbar notification or not.

有看为1,否则为0

表4.8 pending_msgs

 

字段名

类型

描述

备注

_id

INTEGER PRIMARY_KEY

主键ID

系统生成

proto_type

INTEGER

The type of transport protocol(MMS or SMS).

 

msg_id

INTEGER

The ID of the message to be sent or downloaded.

 

msg_type

INTEGER

The type of the message to be sent or downloaded.             This field is only valid for MM. For SM, its value is always

 

err_type

INTEGER

The type of the error code.

 

err_code

INTEGER

The error code of sending/retrieving process.

 

retry_index

INTEGER

How many times we tried to send or download the message.

 

due_time

INTEGER

The time to do next retry.

 

pending_sim_id

INTEGER

   

last_try

INTEGER

The time we last tried to send or download the message.

 

 

表4.9 rate(彩信发送时间)

字段名

类型

描述

备注

sent_time

INTEGER

When a message was successfully sent.

 

 

表4.10 raw(This table is used by the SMS dispatcher to hold         incomplete partial messages until all the parts arrive.)

字段名

类型

描述

备注

_id

INTEGER PRIMARY_KEY

主键ID

系统生成

_data

INTEGER

处理加密解密的数据

 

reference_number

INTEGER

one per full message

 

count

INTEGER

the number of parts

 

sequence

INTEGER

the part number of this message

 

destination_port

INTEGER

   

address

TEXT

   

sim_id

INTEGER

   

pdu

TEXT

the raw PDU for this part

 

 

 

表4.11 sms(短信)

字段名

类型

描述

备注

_id

INTEGER PRIMARY_KEY

主键ID

系统生成

thread_id

INTEGER

Threads 的PK

FK

在短信界面里显示在第一组的第一行

address

TEXT

对方短信号码

 

person

INTEGER

存在电话薄里的名字,不存在的为空

 

date

INTEGER

日期

 

protocol

INTEGER

 

发送短信为空,收到为0

read

INTEGER

已读未读

已读为1,未读为0

status

INTEGER

a TP-Status value or -1 if it status hasn‘t been received

 

type

INTEGER

 

发短信为2,收到短信为1

reply_path_present

INTEGER

 

发短信为空,收到的为0

subject

TEXT

主题

 

body

TEXT

短信内容

 

service_center

TEXT

运营商服务电话

 

locked

INTEGER

是否锁掉了。

0为未锁,1已锁

sim_id

INTEGER

   

error_code

INTEGER

The error code of sending/retrieving process.

 

seen

INTEGER

Indicates whether this message has been seen by the user. The "seen" flag will be used to figure out whether we need to throw up a statusbar notification or not.

有看为1,否则为0

 

 

表4.12 sr_pending(This table is used by the SMS dispatcher to hold pending delivery status

字段名

类型

描述

备注

reference_number

INTEGER

 

 

action

TEXT

 

 

data

TEXT

   

 

 

表4.13 threads(在ConversationList.java中显示的当前短信)

字段名

类型

描述

备注

_id

INTEGER PRIMARY_KEY

主键ID

系统生成

date

INTEGER

The date at which the thread was created.

日期

 

message_count

INTEGER

The message count of the thread.

短信总条数

 

recipient_ids

TEXT

canonical_addresses的主键

FK

snippet

TEXT

The snippet of the latest message in the thread.

在最前面显示的短信

 

snippet_cs

INTEGER

The charset of the snippet.

 

read

INTEGER

Indicates whether all messages of the thread have been read.

已读为1,未读为0

type

INTEGER

Type of the thread, either Threads.COMMON_THREAD or         Threads.BROADCAST_THREAD.

push的短信为0

error

INTEGER

Indicates whether there is a transmission error in the thread.

有错误为1,没有为0

has_attachment

INTEGER

Indicates whether this thread contains any attachments.

没有为1,有为0

 

表4.15 words

字段名

类型

描述

备注

_id

INTEGER

如果是短信则与source_id相同;如果为彩信则是:

(2<<32)+source_id

 

index_text

TEXT

存储的信息内容

 

source_id

INTEGER

如果是短信则表示sms的_id

如果是彩信则表示pdu的_id

 

table_to_use

INTEGER

 

短信为1,彩信为2

表4.16 words_content

字段名

类型

描述

备注

docid

INTEGER PRIMARY_KEY

主键ID

系统生成

c0_id

INTEGER

如果是短信则与source_id相同;如果为彩信则是:

(2<<32)+ c2source_id

 

c1index_text

TEXT

存储的信息内容

 

c2source_id

INTEGER

如果是短信则表示sms的_id

如果是彩信则表示pdu的_id

 

c3table_to_use

INTEGER

 

短信为1,彩信为2

表4.17 words_segdir

字段名

类型

描述

备注

level

INTEGER PRIMARY_KEY

主键ID

 

idx

INTEGER PRIMARY_KEY

主键ID

 

start_block

INTEGER

开始块

 

leaves_end_block

INTEGER

   

end_block

INTEGER

结束块

 

root

BLOB

   

表4.18 word_segments

字段名

类型

描述

备注

blockid

INTEGER PRIMARY_KEY

主键ID

系统生成

block

BLOB

   

 

 

simcontacts.db 中的表相对较少,只有三个:

数据库simcontacts.db中表的定义见表4.19至4.21所示:

表4.19 android_metadata

字段名

类型

描述

备注

locale

TEXT

本地采用语言

例如:zh_CN

 

表4.20 simPeople

字段名

类型

描述

备注

_id

INTEGER PRIMARY_KEY

主键ID

系统生成

name

TEXT

   

number

TEXT

   

simid

INTEGER

   

email

TEXT

   

pinyin

TEXT

拼音

 

表4.21 simPeopleLookup

 

字段名

类型

描述

备注

token

TEXT

   

source

INTEGER

 

与simPeople的_id进行关联

以上是关于Android 短信模块分析 MMS数据库定义及结构整理的主要内容,如果未能解决你的问题,请参考以下文章

手机端ios和android浏览器 如何实现mms广播电台在线音频播放?

android发短信,打电话

一条SMS最大字符数,字符数达到多少按MMS处理

Android系统修改之展讯平台的Mms不能发送西班牙特殊字符ú的问题

msmms sms与mms区别

使用appium模拟用户发送短信