<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Blogger Scott

    在Android應用中讀取彩信文件

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

            String [] temp
    =cur.getColumnNames();
            
    for (int i=0;i<temp.length;i++)
            System.out.println(i
    +":"+temp[i]); 
         通過上面的方法得到cursor后,就可以對這個cursor操作,并通過get方法得到_id,然后根據(jù)這個_id讀取彩信附件文件。


    2、讀取彩信附件文件
          彩信附件文件的地址存儲在mmssms.db的part表的_data字段,形如“/data/data/com.android.providers.telephony/app_parts/PART_1262693697763”,但在應用中讀取彩信附件時,這個字段基本沒什么用,因為不能直接讀取這個文件。讀取同樣要通過ContentProvider,URI為“content://mms/part”,該URI就是對應著part表。可以使用下列代碼段來讀取文件:
    String selection = new String("mid='" + key + "'");//這個key就是pdu里面的_id。
    Cursor cur = getContentResolver().query(Uri.parse("content://mms/part"), null, selection, nullnull);

            
    if (cur.moveToFirst())
                
    do {
                        
    int _partID = cur.getInt(cur.getColumnIndex("_id"));
                        String partID 
    = String.valueOf(_partID);
                        Uri partURI 
    = Uri.parse("content://mms/part/" + partID);
                        
                        ByteArrayOutputStream baos 
    = new ByteArrayOutputStream();
                        InputStream is 
    = null;

                        
    try {
                            is 
    = getContentResolver().openInputStream(partURI);
                            
    byte[] buffer = new byte[256];
                            
    int len = is.read(buffer);
                            
    while (len >= 0
                            
    {
                                baos.write(buffer, 
    0, len);
                                len 
    = is.read(buffer);
                            }

                        }
     catch (IOException e) {
                        }
     finally {
                            
    if (is != null{
                                
    try {
                                    is.close();
                                }
     catch (IOException e) {

                                }
     
                            }

                        }

                        }
        這里得到的baos,就是附件文件。


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



        
    </application>
        
    <uses-permission android:name="android.permission.READ_SMS" />




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

    Feedback

    # re: 在Android應用中讀取彩信文件 2012-06-15 12:29 ----ting

    謝謝分享
      回復  更多評論   

    主站蜘蛛池模板: 亚洲色精品vr一区二区三区| 亚洲午夜精品国产电影在线观看| 久久免费福利视频| 亚洲一级免费毛片| 亚洲人妻av伦理| 亚洲精品免费在线| 真正全免费视频a毛片| 亚洲一区二区电影| 免费在线观看日韩| 96免费精品视频在线观看| 理论秋霞在线看免费| 亚洲国产精品久久久久秋霞影院| www.亚洲一区| 精品久久久久久久久免费影院| 亚欧洲精品在线视频免费观看 | 国产99视频精品免费视频7| 中文字幕成人免费高清在线视频| 亚洲人配人种jizz| 亚洲国产另类久久久精品黑人| 在线免费观看一级毛片| 亚洲一区免费观看| 一级视频免费观看| 亚洲久热无码av中文字幕| 亚洲黄色三级视频| 国产亚洲精品影视在线产品| 毛片网站免费在线观看| 久久99精品免费视频| 一级视频免费观看| 久久亚洲精品11p| 亚洲一区二区三区91| 亚洲高清在线观看| 国产精品亚洲精品日韩已方| 日韩免费视频播放| 91精品免费国产高清在线| 国产精品免费无遮挡无码永久视频 | 一区在线免费观看| 亚洲爆乳AAA无码专区| 亚洲欧洲自拍拍偷午夜色| 亚洲av中文无码乱人伦在线r▽ | 亚洲av成人无码久久精品 | 亚洲性色精品一区二区在线|