6

我尝试使用 uri:content://mms-sms/conversations/{threadId} 通过线程 id 获取所有消息,但它似乎不起作用并引发异常:

         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)

    ........

但是,当我将其更改为 content://sms/conversations/{threadId} 时,它不会抛出这些,但仅适用于 sms,不适用于 mms。

为什么?

4

2 回答 2

6

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);
于 2013-04-13T20:32:31.693 回答
1

上面的代码显示了这样的语法错误,所以我这样改变了。

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

这对我来说可以

于 2014-02-11T07:47:40.587 回答