Не удается прочитать записи после вставки в календарь 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
значение.