我尝试通过线程id使用uri获取所有消息:content:// mms -sms/conversations/{threadId},但它似乎不起作用并抛出异常:
显示java.lang.NullPointerException
在android.os.Parcel.readException(Parcel.java:1333)
在android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:182)
在android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:136)
在android.content.ContentProviderProxy.query(ContentProviderNative.java:358)
在android.content.ContentResolver.query(ContentResolver.java:311)
Run Code Online (Sandbox Code Playgroud)........
但是,当我将其更改为content:// sms/conversations/{threadId}时,它不会抛出这些,但仅适用于短信,而不适用于mms.
为什么?
sms 和 mms 表有不同的列,正确的方法是单独获取,即
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);
Run Code Online (Sandbox Code Playgroud)