Не удается прочитать записи после вставки в календарь Google

Не удается прочитать записи после вставки в календарь Google.

Некоторое время письмо, записи читаются.

Зачем?

Если взять Context от Activity, то все работает нормально. Если Context от AndroidTestCase или взять на себя их Application, это не работает.

Примечание. Календарь с id=calendarId пуст.

public static void test(final Context context, final int calendarId) {
    // insert
    java.util.Calendar calendar = java.util.Calendar.getInstance();

    ContentValues contentValues = new ContentValues();

    contentValues.put("calendar_id", calendarId);
    contentValues.put("dtstart", calendar.getTime().getTime());
    contentValues.put("dtend", calendar.getTime().getTime() + 1L*60*60*1000);
    contentValues.put("title", "test_title");

    Uri uri = Uri.parse("content://com.android.calendar/events");
    context.getContentResolver.insert(uri, contentValues);

    // read
    Uri.Builder builder = Uri.parse("content://com.android.calendar/instances/when").buildUpon();
    ContentUris.appendId(builder, Long.MIN_VALUE);
    ContentUris.appendId(builder, Long.MAX_VALUE);

    Cursor cursor = context.getContentResolver.query(
        builder.build(),
        new String[]  { "event_id", "title" },
        "Calendars._id=" + calendarId,
        null,
        null);
    try {
        if (!cursor.moveToNext()) {
            // fail
            throw new IllegalStateException();
        }
    } finally {
        cursor.close();
    }
}

1 ответ

Решение

Виноват. В коде:

Uri.Builder builder = Uri.parse("content://com.android.calendar/instances/when").buildUpon();
ContentUris.appendId(builder, Long.MIN_VALUE);
ContentUris.appendId(builder, Long.MAX_VALUE);

Не могу установить дату начала Long.MIN_VALUE значение.

Другие вопросы по тегам