在Android應(yīng)用中讀取彩信文件
在Android應(yīng)用中讀取彩信文件涉及到Android的一個(gè)數(shù)據(jù)庫(kù)/data/data/com.android.providers.telephony/databases/mmssms.db和一個(gè)文件夾/data/data/com.android.providers.telephony/app_parts。要備份彩信,可以將這個(gè)數(shù)據(jù)庫(kù)和文件夾拷貝到硬盤,但是在應(yīng)用中卻不能通過(guò)1、讀取mmssms.db數(shù)據(jù)庫(kù)
彩信的標(biāo)題、發(fā)送者號(hào)碼、日期等數(shù)據(jù)存儲(chǔ)在mmssms.db的pdu表中,要讀取這個(gè)表可以使用系統(tǒng)提供的一個(gè)ContentProvider,URI是“content://mms”。操作這個(gè)ContentProvider和操作數(shù)據(jù)庫(kù)一樣,這個(gè)ContentProvider的結(jié)構(gòu)也和pdu表的結(jié)構(gòu)一樣,Android文檔對(duì)這些字段沒(méi)有說(shuō)明,但是可以通過(guò)將mmssms.db數(shù)據(jù)庫(kù)備份到硬盤上,然后再通過(guò)Sqlite Database Browser軟件來(lái)查看分析,具體可參考:http://www.aygfsteel.com/easywu/archive/2010/01/10/308959.html。
content://mms主要的幾個(gè)字段如下:
◆ _id:該條彩信的主鍵,對(duì)應(yīng)著part表(ContentProvider的URI是content://mms/part,詳見后)中的mid字段。
◆sub:該條彩信的標(biāo)題
◆date:該條彩信的接收日期
下面的代碼可以查詢?cè)揅otnetProvider,得到一個(gè)cursor,并列出所有的列名。





2、讀取彩信附件文件
彩信附件文件的地址存儲(chǔ)在mmssms.db的part表的_data字段,形如“/data/data/com.android.providers.telephony/app_parts/PART_1262693697763”,但在應(yīng)用中讀取彩信附件時(shí),這個(gè)字段基本沒(méi)什么用,因?yàn)椴荒苤苯幼x取這個(gè)文件。讀取同樣要通過(guò)ContentProvider,URI為“content://mms/part”,該URI就是對(duì)應(yīng)著part表。可以使用下列代碼段來(lái)讀取文件:
































3、聲明permission
要在代碼中使用content://mms,content://mms/part,content://sms等,還要在AndroidManifest.xml中注冊(cè)premission,代碼如下:












posted on 2010-02-19 16:16 江天部落格 閱讀(5407) 評(píng)論(1) 編輯 收藏 所屬分類: Android