我正在处理短信应用程序。在我的应用程序中,我必须列出所有的诽谤。我使用以下的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]);
}
该号码打印每个会话号码和正文打印每个会话最后一条消息。但是我希望每个对话都能得到完整的信息,并且还可以帮助我进行特定号码的对话。
答案 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
}