4

我正在开发一个短信应用程序。在我的应用程序中,我必须列出所有的对话。所以我使用以下 Uri。

content://mms-sms/conversations/

它工作正常。以下是我的代码片段。

 Uri uri = Uri.parse("content://mms-sms/conversations/");
 Cursor c= getContentResolver().query(uri, null, null ,null,null);
 startManagingCursor(c);
 if(c.moveToFirst()){

            for(int i=0;i<c.getCount();i++){
                     body[i]= c.getString(c.getColumnIndexOrThrow("body")).toString();
                     number[i]=c.getString(c.getColumnIndexOrThrow("address")).toString();
                     c.moveToNext();
             }
    }
    c.close();

    for (int i = 0; i < body.length; i++) {
        System.out.println("body ="+body[i]);
        System.out.println("number ="+number[i]);
    }

数字打印每个对话编号,正文打印每个对话的最后一条消息。但我想获得每个对话的完整信息,并帮助我针对特定号码进行对话。

4

1 回答 1

1

Conversations光标,您可以得到thread_id. 一旦你得到thread_id,继续查询sms provider返回所有具有相同的消息thread_id

示例:thread_id= 2

Uri SMS_INBOX = Uri.parse("content://sms");
Cursor c = getContentResolver().query(SMS_INBOX, null, "thread_id" + " = "
                + "2", null,
                "date" + " ASC");


while (c.moveToNext()){

        Log.v("BODY", c.getString(11).toString()); // 11 is the index of body with project URI

    }
于 2012-08-14T08:34:23.063 回答