Android MMS 數據存取數據表

MMS模塊總共包含17張表:addr、android_metadata、attachments、canonical_addresses、drm、part、pdu、pending_msgs、rate、raw、sms、sr_pending、threads、words、words_content、words_segdir、words_segments。

其中,pending_msgs表用於存儲待發送或下載的短信與彩信(有待證實),使用pdu中的觸發器進行插入和刪除。raw表用於存儲接收中的長短信或分段彩信通知。drm用於彩信權限管理。words開頭的表存儲了短彩信中的單詞,用於搜索時使用。attachments、rate、sr_pending表作用未知。android_metadata表存儲的是語言信息,就一條記錄。

 

下面是一些常用表的字段及其說明:

threads表

列名

類型

說明

_id

integer

唯一標識,自增,從1開始

date

integer

會話最新更新時間

message_count

integer

當前會話所包含的消息數量

recipient_ids

text

接收者(canonical_addresses表的id)列表,所有接收者以空格隔開

snippet

text

最新更新的消息的內容(彩信爲主題,短信爲正文)

snippet_cs

integer

snippet的編碼方式,彩信:UTF-8爲106,短信爲0

read

integer

是否有未讀信息:0-未讀,1-已讀 

type

integer

會話類型,0-普通會話(只有一個接收者),1-廣播會話(多個接收者)

error

integer

發送失敗的消息(type=5)的數量

has_attachment

integer

是否有附件:0-無,1-有

 

sms表

列名

類型

說明

_id

integer

唯一標識,自增,從1開始

thread_id 

integer

threads表的id

address

text

接收者手機號碼,對於一個會話,有可能含有多個接收者,每個人都將收到一條短信

person

integer

聯繫人(模塊)列表裏的序號,陌生人爲null

date

integer

時間,以豪秒來表示

protocol

integer

協議,分爲:0-SMS_RPOTO,1-MMS_PROTO。成功發送後設置。

read

integer

是否閱讀:0-未讀,1-已讀 

status

integer

狀態:-1默認值,0-complete,64-pending,128-failed

type

integer

ALL=0;INBOX=1;SENT=2;DRAFT=3;OUTBOX=4;FAILED=5;QUEUED=6;

reply_path_present

integer

TP-Reply-Path位的值 0/1

subject

text

短信的主題,默認爲空

body 

text

短信內容

service_center

text

短信服務中心號碼編號

locked

integer

此條短信是否已由用戶鎖定,0-未鎖定,1-已鎖定

error_code

integer

錯誤代碼,有哪些值暫時未知

seen

integer

用於指明該消息是否已被用戶看到(非閱讀,點開會話列表即可,不用打開會話),僅對收到的消息有用

 

pdu表

列名

類型

說明

_id

integer

唯一標識,自增,從1開始

thread_id

integer

threads表的id

date

integer

時間,以秒來表示(與短信的不同)

msg_box

integer

此條彩信屬於哪個信箱,all爲0,inbox爲1,sent爲2,draft爲3,outbox爲4,failed爲5

read

integer

此條彩信是否已讀:0-未讀,1-已讀

m_id

text

Message-ID,由彩信服務器分配的消息id

sub

text

此條彩信主題

sub_cs

integer

此條彩信主題編碼方式:UTF-8爲106

ct_t

text

彩信對應的Content-Type是application/vnd.wap.multipart.related

ct_l

text

X-Mms-Content-Location

exp

integer

X-Mms-Expiry,彩信有效期

m_cls

text

X-Mms-Message-Class,此條彩信的用途:auto,advertisement,personal,informational

m_type

integer

X-Mms-Message-Type,由MMS協議定義的彩信類型,其中send-req爲128、notification-ind爲130、retrieve-conf爲132

v

integer

X-Mms-MMS-Version,此條彩信對應的MMS協議的版本號,1.0 16,1.1 17,1.2 18,1.3 19

m_size

integer

X-Mms-MessageSize

pri

integer

X-Mms-Priority,此條彩信的優先級,normal 129,low 128,high 130

rr

integer

X-Mms-Read-Report,此條彩信的閱讀報告,129

rpt_a

integer

X-Mms-Report-Allowed

resp_st

integer

X-Mms-Response-Status

st

integer

該彩信的下載狀態,未啓動-128,下載中-129,傳輸失敗-130,保存失敗-135

tr_id

text

X-Mms-Transaction-Id,事務標識

retr_st

integer

X-Mms-Retrieve-Status

retr_txt

text

X-Mms-Retrieve-Text

retr_txt_cs

integer

RETRIEVE_TEXT的編碼方式

read_status

integer

X-Mms-Read-Status

ct_cls

integer

X-Mms-Content-Class

resp_txt

text

X-Mms-Response-Text

d_tm

integer

X-Mms-Delivery-Time

d_rpt

integer

X-Mms-Delivery-Report,此條彩信的傳輸報告,是-128,否-129

locked

integer

此條彩信是否已由用戶鎖定,0-未鎖定,1-已鎖定

seen

integer

用於指明該消息是否已被用戶看到(非閱讀,點開會話列表即可,不用打開會話),僅對收到的消息有用

 

part表

列名

類型

說明

_id

integer

唯一標識,自增,從1開始

mid

integer

pdu表的id

seq

integer

標誌part的順序,若ct爲application/smil,則爲-1,否則爲0

ct

text

此PART內容類型,如果是彩信始末:application/smil;如果是文本附件:text/plain;圖像附件:jpg:image/jpeg,gif:image/gif;音頻附件:audio/mpeg

name

text

該PART的名字

chset

integer

該PART的編碼方式,UTF-8爲106

cd

text

CONTENT_DISPOSITION

fn

text

該PART的文件名稱

cid

text

CONTENT_ID,該PART內容的id

cl

text

該PART的文件的位置

ctt_s

integer

CONTENT_TYPE內容類型在消息中的起始位置,未在代碼中設置

ctt_t

text

CONTENT_TYPE內容類型的類型,未在代碼中設置

_data

text

彩信附件在手機上的地址

text

text

如果是彩信始末,爲彩信的SMIL內容;如果是文本附件,爲附件內容;如果是視頻、音頻附件,此參數爲空

 

addr表

列名

類型

說明

_id

integer

唯一標識,自增,從1開始

msg_id

integer

pdu表的id

contact_id

integer

電話本中聯繫人的id

address

text

電話號碼,如果爲insert-address-token且type爲151,說明爲本機號碼

type

integer

電話號碼的類型,必須爲PduHeaders.BCC-129,PduHeaders.CC-130,PduHeaders.FROM-137,PduHeaders.TO-151之一

charset

integer

電話號碼編碼方式

 

canonical_addresses表

列名

類型

說明

_id

integer

唯一標識,自增,從1開始

address

text

所有曾經使用過的接收者的電話號碼,用於threads表標識會話

 

ContentProvider

MMS模塊的數據存儲主要依賴三個ContentProvider:SmsProvider、MmsProvider、MmsSmsProvider,以及一個輔助類Telephony。

其中,SmsProvider用於短信相關數據的存取,MmsProvider用於彩信相關數據的存取,MmsSmsProvider則用於短彩信通用數據的存取,如會話信息、接收者、草稿(公共屬性)等。

Telephony則提供了一系列Uri、常量字符串、列名數組、方法以方便用戶使用這三個ContentProvider。

 

SmsProvider

短信的uri以content://sms開頭。

可以使用Telephony中的Sms類提供的公共變量進行構造Uri,甚至使用其中提供的一些addMessage(將信息存入各個不同的信箱)、saveMessage(更新已存在的草稿)、addMessageToUri(插入數據到指定Uri)、moveMessageToFolder(將信息移到某一信箱)方法簡化操作。

UriMatcher中配置了27種類型:

AUTHORITY

PATH

類型

說明

sms

 

SMS_ALL

所有短信

sms

#

SMS_ALL_ID

指定了_id的短信

sms

inbox

SMS_INBOX

位於收件箱的短信

sms

inbox/#

SMS_INBOX_ID

位於收件箱的指定了_id的短信

sms

sent

SMS_SENT

已成功發送出去的短信

sms

sent/#

SMS_SENT_ID

已成功發送出去的指定了_id的短信

sms

draft

SMS_DRAFT

位於草稿箱的短信

sms

draft

SMS_DRAFT_ID

位於草稿箱的指定了_id的短信

sms

outbox

SMS_OUTBOX

已從隊列中取出進行處理但未成功發送出去的短信

sms

outbox/#

SMS_OUTBOX_ID

已從隊列中取出進行處理但未成功發送出去的指定了_id的短信

sms

undelivered

SMS_UNDELIVERED

未成功發送出去的短信(包括髮送失敗、草稿、隊列中的)

sms

failed

SMS_FAILED

發送失敗的短信

sms

failed/#

SMS_FAILED_ID

發送失敗的指定了_id的短信

sms

queued

SMS_QUEUED

隊列中的短信

sms

conversations

SMS_CONVERSATIONS

所有會話包含的短信數量、內容、會話id

sms

conversations/*

SMS_CONVERSATIONS_ID

指定會話id的短信

sms

raw

SMS_RAW_MESSAGE

raw表中的短信(臨時短信,用於接收長短信時使用)

sms

attachments

SMS_ATTACHMENT

往attachments表中插入或查詢信息

sms

attachments/#

SMS_ATTACHMENT_ID

從attachments表中查詢指定sms_id的信息

sms

threadID

SMS_NEW_THREAD_ID

往canonical_addresses表中插入信息

sms

threadID/*

SMS_QUERY_THREAD_ID

查詢canonical_addresses中所有信息

sms

status/#

SMS_STATUS_ID

查詢或更新指定id的短信(沒有什麼特殊功能,有可能沒用上)

sms

sr_pending

SMS_STATUS_PENDING

對sr_pending表進行操作時用的

sms

icc

SMS_ALL_ICC

所有存在SIM/UIM卡上的短信

sms

icc/#

SMS_ICC

指定id的存在SIM/UIM卡上的短信

sms

sim

SMS_ALL_ICC

所有存在SIM/UIM卡上的短信

sms

sim/#

SMS_ICC

指定id的存在SIM/UIM卡上的短信

 

MmsProvider

短信的uri以content://mms開頭。

可以使用Telephony中的Mms類提供的公共變量進行構造Uri,甚至使用其中提供的一些query(查詢)、isEmailAddress、isPhoneNumber方法簡化操作。

UriMatcher中配置了21種類型:

AUTHORITY

PATH

類型

說明

mms

 

MMS_ALL

所有彩信

mms

#

MMS_ALL_ID

指定了id的彩信

mms

inbox

MMS_INBOX

位於收件箱的彩信

mms

inbox/#

MMS_INBOX_ID

位於收件箱的指定了_id的彩信

mms

sent

MMS_SENT

已成功發送出去的彩信

mms

sent/#

MMS_SENT_ID

已成功發送出去的指定了_id的彩信

mms

drafts

MMS_DRAFTS

位於草稿箱的彩信

mms

drafts/#

MMS_DRAFTS_ID

位於草稿箱的指定了_id的彩信

mms

outbox

MMS_OUTBOX

已開始進行處理但未成功發送出去的短信

mms

outbox/#

MMS_OUTBOX_ID

已開始進行處理但未成功發送出去的指定了_id的短信

mms

part

MMS_ALL_PART

對part表的查詢與刪除

mms

#/part

MMS_MSG_PART

對part表的指定了msg_id的記錄的增、刪、改、查

mms

part/#

MMS_PART_ID

對part表的指定了id的記錄的刪、改、查

mms

#/addr

MMS_MSG_ADDR

對addr表的指定了msg_id的記錄的增、刪、查

mms

rate

MMS_SENDING_RATE

查詢rate表中的信息,刪除1小時以前的記錄並插入新記錄

mms

report-status/#

MMS_REPORT_STATUS

查詢指定id的彩信的狀態(SQL語句很複雜)

mms

report-request/#

MMS_REPORT_REQUEST

查詢指定id的,addr表的type爲151的彩信(同report-status一起使用)

mms

drm

MMS_DRM_STORAGE

對drm表的刪除與插入

mms

drm/#

MMS_DRM_STORAGE_ID

對指定了id的drm表的數據的查詢

mms

threads

MMS_THREADS

對pdu表按thread_id分組統計(即獲取所有包含彩信的thread_id)

mms

scrapSpace

MMS_SCRAP_SPACE

當添加附件時選擇拍照,用於獲取臨時存儲空間時使用

 

MmsSmsProvider

該ContentProvider的uri以content://mms-sms開頭。

可以使用Telephony中的MmsSms類提供的公共變量進行構造Uri。

UriMatcher中配置了18種類型:

AUTHORITY

PATH

類型

說明

mms-sms

conversations

URI_CONVERSATIONS

用於刪除所有會話或查詢所有會話(查詢分兩種模式:1、指定了simple爲true,則僅僅從threads表中查詢數據;2、未指定,則分別從sms和pdu表查詢最新的不算草稿的短信和彩信)

mms-sms

complete-conversations

URI_COMPLETE_CONVERSATION

查詢已完成的消息(包括非草稿短彩信,已完全接收或已發送出去的彩信)

mms-sms

conversations/#

URI_CONVERSATIONS_MESSAGES

用於查詢(指定id的會話的消息)、刪除、更新(分別更新pdu和sms表)指定id的會話

mms-sms

conversations/#/recipients

URI_CONVERSATIONS_RECIPIENTS

用於查詢指定id的會話

mms-sms

conversations/#/subject

URI_CONVERSATIONS_SUBJECT

同上

mms-sms

conversations/obsolete

URI_OBSOLETE_THREADS

用於刪除沒有消息的會話

mms-sms

messages/byphone/*

URI_MESSAGES_BY_PHONE

用於查詢接收者中包含指定電話號碼的消息

mms-sms

threadID

URI_THREAD_ID

獲取指定接收者(附加的查詢參數recipient)的會話id,若不存在,新增

mms-sms

canonical-address/#

URI_CANONICAL_ADDRESS

查詢或更新指定id的canonical_address表中的數據

mms-sms

canonical-addresses

URI_CANONICAL_ADDRESSES

查詢canonical_address表中的數據

mms-sms

search

URI_SEARCH

從短信和彩信中搜索符合給定的pattern的數據

mms-sms

searchSuggest

URI_SEARCH_SUGGEST

從word表中搜索符合給定的pattern的數據,上限50條

mms-sms

pending

URI_PENDING_MSG

查詢(可指定protocol爲sms或mms,message爲某個msg_id)或更新pending_msgs表

mms-sms

undelivered

URI_UNDELIVERED_MSG

查詢所有未成功發送的短信與彩信

mms-sms

notifications

URI_NOTIFICATIONS

無代碼處理

mms-sms

draft

URI_DRAFT

查詢所有短信與彩信的草稿,最多輸出threadid與id列

mms-sms

locked

URI_FIRST_LOCKED_MESSAGE_ALL

查詢所有會話中的被鎖定的消息,僅輸出1條,用於確定是否有被鎖定的消息

mms-sms

locked/#

URI_FIRST_LOCKED_MESSAGE_BY_THREAD_ID

查詢指定threadId的會話中的被鎖定的消息,僅輸出1條,用於確定是否有被鎖定的消息

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章