Android短信按号码阅读

时间:2012-08-14 05:41:32

标签: android android-contentprovider

我正在处理短信应用程序。在我的应用程序中,我必须列出所有的诽谤。我使用以下的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]);
    }

该号码打印每个会话号码和正文打印每个会话最后一条消息。但是我希望每个对话都能得到完整的信息,并且还可以帮助我进行特定号码的对话。

1 个答案:

答案 0 :(得分: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

    }