我做了一個 sms 應用程序。在程序中我列出所有的 convrsation。因此我使用下面的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]);
}
Number 打印的是每個 conversations 數量,body 打印的是每個conversations的最後一條信息。
我想獲得每個 conversation 的整個消息還有指定的數量。如何實現?
android的sms一個會話conversation對應一個threadId,你根據threadId去查詢會話的內容,再計算每個threadId中的消息數量就可以實現你的需求。你的sms應該是指整個信息吧,每個會話既有sms短信也有mms彩信,只要短信的話你還得過濾下。threadId可以通過查詢信息的thread表得到。你現在用的這個uri應該是信息應用主界面顯示用到那個。