ContentResolver cr = getContentResolver();
Cursor cur = cr.query(Uri.parse(\"content://sms/conversations/\"), null,null,null, null);
is not wo
finally got what i needed!
ContentResolver contentResolver = getContentResolver();
final String[] projection = new String[]{"*"};
Uri uri = Uri.parse("content://mms-sms/conversations/");
Cursor query = contentResolver.query(uri, projection, null, null, null);
String[] projection = {"thread_id", "MAX(date)", "COUNT(*) AS msg_count", "body"};
Cursor cursor = getContentResolver().query(Telephony.Sms.CONTENT_URI, projection, "thread_id) GROUP BY (thread_id", null, null);
I am not sure and i haven't tried yet, but i think this may be of your work.
Uri uriSms = Uri.parse("content://sms/inbox");
Cursor c = getContentResolver().query(uriSms, null,null,null,null);
I had found this earlier from this answer: How to delete an SMS from the inbox in Android programmatically?
You can fetch sms-inbox:
Uri mSmsinboxQueryUri = Uri.parse("content://sms/inbox");
Cursor cursor1 = getContentResolver().query(mSmsinboxQueryUri,new String[] { "_id", "thread_id", "address", "person", "date","body", "type" }, null, null, null);
startManagingCursor(cursor1);
String[] columns = new String[] { "address", "person", "date", "body","type" };
if (cursor1.getCount() > 0) {
String count = Integer.toString(cursor1.getCount());
while (cursor1.moveToNext()){
String address = cursor1.getString(cursor1.getColumnIndex(columns[0]));
String name = cursor1.getString(cursor1.getColumnIndex(columns[1]));
String date = cursor1.getString(cursor1.getColumnIndex(columns[2]));
String msg = cursor1.getString(cursor1.getColumnIndex(columns[3]));
String type = cursor1.getString(cursor1.getColumnIndex(columns[4]));
}
}
You can fetch other sent items by changing the URI.
Uri mSmsinboxQueryUri = Uri.parse("content://sms/sent");
You can do that with MMS also with URI:
RECEIVED_MMS_CONTENT_URI = "content://mms/inbox";
SENT_MMS_CONTENT_URI = "content://mms/sent";
For SMS-MMS both:
Uri uri = Uri.parse("content://mms-sms/conversations/");
This function is for fetching conversations
private void getSMSCOnversationlist() {
Uri SMS_INBOX = Uri.parse("content://sms/conversations/");
Cursor c = getActivity().getContentResolver().query(SMS_INBOX, null,null, null, "date desc");
String[] count = new String[c.getCount()];
String[] snippet = new String[c.getCount()];
String[] thread_id = new String[c.getCount()];
c.moveToFirst();
for (int i = 0; i < c.getCount(); i++) {
count[i] = c.getString(c.getColumnIndexOrThrow("msg_count")).toString();
thread_id[i] = c.getString(c.getColumnIndexOrThrow("thread_id")).toString();
snippet[i] = c.getString(c.getColumnIndexOrThrow("snippet")).toString();
Toast.makeText(getActivity(), count[i] + " - " + thread_id[i] + " - " + snippet[i]+ " - " , Toast.LENGTH_LONG).show();
c.moveToNext();
}
c.close();
}