ContentResolver cr = getContentResolver();
Cursor cur = cr.query(Uri.parse("content://sms/conversations/"), null,null,null, null);
is not working why?
<uses-permission android:name="android.permission.READ_SMS" />
permissions have been added.
08-12 10:56:39.188: ERROR/AndroidRuntime(377): Caused by: android.database.sqlite.SQLiteException: near ",": syntax error: , while compiling: SELECT , body AS snippet FROM sms, (SELECT thread_id AS group_thread_id, MAX(date)AS group_date,COUNT(*) AS msg_count FROM sms GROUP BY thread_id) AS groups WHERE (sms.thread_id = groups.group_thread_id AND sms.date =groups.group_date)
08-12 10:56:39.188: ERROR/AndroidRuntime(377): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:143)
08-12 10:56:39.188: ERROR/AndroidRuntime(377): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:111)
08-12 10:56:39.188: ERROR/AndroidRuntime(377): at android.content.ContentProviderProxy.bulkQuery(ContentProviderNative.java:279)
08-12 10:56:39.188: ERROR/AndroidRuntime(377): at android.content.ContentProviderProxy.query(ContentProviderNative.java:298)
08-12 10:56:39.188: ERROR/AndroidRuntime(377): at android.content.ContentResolver.query(ContentResolver.java:152)
08-12 10:56:39.188: ERROR/AndroidRuntime(377): at com.GetMessages.GetConversations$FetchData.doInBackground(GetConversations.java:33)
08-12 10:56:39.188: ERROR/AndroidRuntime(377): at com.GetMessages.GetConversations$FetchData.doInBackground(GetConversations.java:1)
08-12 10:56:39.188: ERROR/AndroidRuntime(377): at android.os.AsyncTask$2.call(AsyncTask.java:185)
08-12 10:56:39.188: ERROR/AndroidRuntime(377): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:256)
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/");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With