ContentResolver.query引发了HTC EVO 4G LTE的异常

时间:2012-08-03 09:47:02

标签: android

我在阅读有关HTC EVO 4G LTE(Android 4.0.3)的提醒时遇到了麻烦。代码:

1 | Uri uri = CalendarContract.Reminders.CONTENT_URI;
2 | Cursor c = cr.query(uri, null, null, null, CalendarContract.Reminders._ID + " ASC");

Stack trace:
at android.os.Parcel.readException(Parcel.java:1338)
    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:182)
    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:136)
    at android.content.ContentProviderProxy.query(ContentProviderNative.java:406)
    at android.content.ContentResolver.query(ContentResolver.java:315)
    at bla.bla.SomeClass.somefunction(SomeClass.java:2)

1 个答案:

答案 0 :(得分:2)

我测试了你的代码并在m AT& T HTC One X上得到了相同的错误。然而,添加一个投影参数可以解决问题。所以这有效:

    final String[] columnsToReturn = new String[] {
            CalendarContract.Reminders.EVENT_ID
        };
    final Cursor c = cr.query(uri, columnsToReturn, null, null, BaseColumns._ID + " ASC");

projection参数列出了您希望为游标返回的每个结果返回的数据列。所以这就是为每个返回的提醒返回事件ID。