我对此代码有疑问:

private static final String[] CALENDARS_PROPS_PROJECTION = { Calendars._ID, Calendars.NAME, Calendars.CALENDAR_DISPLAY_NAME, Calendars.CALENDAR_TIME_ZONE, Calendars.DELETED };

protected Uri getURI() {
     return CalendarContract.Calendars.CONTENT_URI
            .buildUpon().appendQueryParameter(android.provider.CalendarContract.CALLER_IS_SYNCADAPTER,   "true")
            .appendQueryParameter(Calendars.ACCOUNT_NAME, account.name)
            .appendQueryParameter(Calendars.ACCOUNT_TYPE, account.type)
            .build();
}

ContentResolver cr = ...
Cursor cur = cr.query(getURI(), CALENDARS_PROPS_PROJECTION, Calendars.DELETED + "=?", new String[] { "0" }, null);


这段代码工作了几个月,我能够枚举设备上存在的所有日历,但是突然它开始返回一个游标,其中getCount()返回0。

与以前一样,可以通过S Planner应用程序查看所有日历和事件。

有任何想法吗?

最佳答案

解决方案很简单:删除

.appendQueryParameter(Calendars.ACCOUNT_NAME, account.name)
.appendQueryParameter(Calendars.ACCOUNT_TYPE, account.type)

08-18 15:05