6

I tried to get all messages by thread id with uri:content://mms-sms/conversations/{threadId}, but it doesn't seem work and throws exceptions:

         java.lang.NullPointerException

         at android.os.Parcel.readException(Parcel.java:1333)

         at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:182)

         at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:136)

         at android.content.ContentProviderProxy.query(ContentProviderNative.java:358)

         at android.content.ContentResolver.query(ContentResolver.java:311)

    ........

however, when I change it to content://sms/conversations/{threadId}, it will not throw these, but only works for sms, not for mms.

why?

Community
  • 1
  • 1
Binary Wang
  • 73
  • 1
  • 6

2 Answers2

6

the sms and mms tables have different columns, the correct way is to fetch each on its own, that is

Cursor smsCur = cr.query(Uri.parse("content://sms/"), null,  "thread_id=" + threadId, null, null);
Cursor mmsCur = cr.query(Uri.parse("content://mms/"), null,  "thread_id=" + threadId, null, null);
vikki
  • 2,766
  • 1
  • 20
  • 26
1

The above code shows syntax error like that so i changed like this.

   Cursor c= getContentResolver().query(Uri.parse("content://sms/"), null,  "thread_id=" + messgid, null, null);

It works fine for me

Karthick M
  • 769
  • 2
  • 11
  • 29