我正在开发一个短信应用程序。在我的应用程序中,我必须列出所有的转换。所以我使用以下 Uri。
content://mms-sms/conversations/
它工作正常。下面是我的代码 fragment 。
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]);
}
数字打印每个对话的编号,正文打印每个对话的最后一条消息。但我想获得每个对话的完整消息,并帮助我进行特定号码的对话。
最佳答案
从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
}
关于Android 短信按号码阅读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11946336/