我做了一个 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应该是信息应用主界面显示用到那个。