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





2、讀取彩信附件文件
彩信附件文件的地址存儲在mmssms.db的part表的_data字段,形如“/data/data/com.android.providers.telephony/app_parts/PART_1262693697763”,但在應用中讀取彩信附件時,這個字段基本沒什么用,因為不能直接讀取這個文件。讀取同樣要通過ContentProvider,URI為“content://mms/part”,該URI就是對應著part表。可以使用下列代碼段來讀取文件:
































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












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