Android簡訊的一些關鍵字

來源:互聯網
上載者:User

android會把簡訊信心儲存在資料庫中,可查看/dbdata/databases/com.android.providers.telephony/mmssms.db。但是我們不能直接存取資料庫,只能通過ContentProvider來訪問它。

        以下是訪問簡訊資料庫的uri
        content://sms/inbox        收件匣
        content://sms/sent        已發送
        content://sms/draft        草稿
        content://sms/outbox        寄件匣
        content://sms/failed        發送失敗
        content://sms/queued        待發送列表

        資料庫相關欄位如下:

        _id               一個自增欄位,從1開始
        thread_id    序號,同一發信人的id相同
        address      寄件者手機號碼(根據這個尋找連絡人姓名?)
        person        連絡人清單裡的序號,陌生人為null
        date            發件日期,單位是milliseconds,從1970/01/01至今所經過的時間)
        protocol      協議,分為: 0 SMS_RPOTO, 1 MMS_PROTO 
        read           是否閱讀,0未讀, 1已讀 
        status         狀態,-1接收,0 complete, 64 pending, 128 failed

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

        body                              簡訊內容
        service_center              簡訊服務中心號碼編號
        subject                          簡訊的主題
        reply_path_present     TP-Reply-Path
        locked


       查詢資訊:
       檢索資料方法很簡單:  在Activity中
 
java代碼:
Uri uri = Uri.parse("content://sms/inbox");
Cursor cur = this.managedQuery(uri, null, null, null, null);
if (cur.moveToFirst()) {
do{
for(int j = 0; j < cur.getColumnCount(); j++){
info = "name:" + cur.getColumnName(j) + "=" + cur.getString(j);
Log.i("====>", info);
}
}while(cur.moveToNext());
}

       managedQuery(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)參數依次為uri上面已列出
       查詢欄位          查詢欄位數組,也可以將所有需要查詢的欄位放入一個字元內   
                               比如new String[]{"_id", "thread_id"}和new String[]{"_id,thread_id"}是一致的。   
                               跟SQL一樣,欄位名不區分大小寫   
       條件                 不帶Where的SQL 條件字元比如"_id=? And thread_id = ? Or type =   '1'"   
       條件中的參數   參數字元數組,跟上述的條件一一對應   
       排序                 不帶Order by排序字串,比如_id desc, type   
       如果參數為null,SQL中查詢欄位為“*”,相關的條件為空白   刪除資訊:

java代碼:
this.getContentResolver().delete(Uri.parse("content://sms"), "_id=?", new String[]{"3"});

       Url中content://sms 替換成content://sms/ 也成功,但是其它url時程式報錯,比如content://sms/inbox記得要加上許可權

java代碼:
<uses-permission android:name="android.permission.WRITE_SMS"></uses-permission>
<uses-permission android:name="android.permission.READ_SMS"></uses-permission>

作者“xSTARx”
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.