HTC Sense 3.6 не показывает события календаря?

У меня есть приложение, которое запрашивает API экземпляров и событий календаря Google в Android 4.x. Я тестировал это на разных устройствах, и это работает, но по некоторым причинам это не работает на HTC Sense 3.6 (Android 4.0.3). Кто-нибудь еще может это подтвердить или кто-нибудь знает, что происходит?

Вот фрагмент кода, который работает на устройствах не Sense HTC:

Cursor instances = Instances.query(
    context.getContentResolver(), 
    new String[]{Instances.EVENT_ID, Instances.BEGIN, Instances.END, Instances.SELF_ATTENDEE_STATUS}, 
    startTime, 
    startTime+lengthInMillis);
.
.
.
long eventId = instances.getLong(instances.getColumnIndex(Instances.EVENT_ID));
Cursor events = context.getContentResolver().query(
    ContentUris.withAppendedId(Events.CONTENT_URI, eventId),
    new String[] {Events._ID, Events.CALENDAR_ID, Events.TITLE, Events.DESCRIPTION, Events.EVENT_LOCATION, Events.ALL_DAY, Events.AVAILABILITY},
    null,
    null, 
    null);

1 ответ

Решение

Очевидно, что HTC Sense 3.6 не нравится API Instances.query(), поэтому я создал URI вручную, выполнив следующее, и все заработало.

    Uri.Builder builder = Instances.CONTENT_URI.buildUpon();
    ContentUris.appendId(builder, startTime);
    ContentUris.appendId(builder, startTime+lengthInMillis);
    Cursor instances = context.getContentResolver().query(
            builder.build(), 
            null, 
            null, 
            null, 
            null);
Другие вопросы по тегам