问题描述
- Android 中通过 number 读取 sms
- 我做了一个 sms 应用程序。在程序中我列出所有的 convrsation。因此我使用下面的uri:
content://mms-sms/conversations/
可以正常运行,下面是代码片段:
Uri uri = Uri.parse(""content://mms-sms/conversations/""); Cursor c= getContentResolver().query(uri null null nullnull); 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应该是信息应用主界面显示用到那个。
时间: 2024-11-05 04:57:05