Чтобы добавить запись в определенный календарь, нам нужно настроить запись календаря для вставки с использованием ContentValues следующим образом:
ContentValues event = new ContentValues();
Каждое событие должно быть привязано к определенному календарю, поэтому первоето, что вы хотите установить, это идентификатор Календаря, в который нужно вставить это событие:
event.put("calendar_id", calId);
Затем мы устанавливаем некоторую основную информацию о событии, включая строковые поля, такие как заголовок события., описание и местоположение.
event.put("title", "Event Title");
event.put("description", "Event Desc");
event.put("eventLocation", "Event Location");
Существует несколько различных вариантов настройки времени и даты события.
Мы можем установить информацию о начале и конце события следующим образом:
long startTime = START_TIME_MS;
long endTime = END_TIME_MS;
event.put("dtstart", startTime);
event.put("dtend", endTime);
Если мы добавляем день рождения или праздник, мы установили бы запись на весь день:
event.put("allDay", 1); // 0 for false, 1 for true
Этой информации достаточно для большинства записей.Однако имеется ряд других полезных атрибутов записей календаря.
Например, вы можете установить статус события на предварительное (0), подтвержденное (1) или отмененное (2):
event.put("eventStatus", 1);
Вы можете контролировать, кто может видеть это событие, устанавливая его видимость по умолчанию (0), конфиденциально (1), приватно (2) или общедоступно (3):
event.put("visibility", 0);
Вы можете контролироватьсобытие потребляет время (может иметь конфликты расписания) в календаре, устанавливая его прозрачность непрозрачным (0) или прозрачным (1).
event.put("transparency", 0);
Вы можете контролировать, вызывает ли событие сигнал тревоги напоминания, следующим образом:
event.put("hasAlarm", 1); // 0 for false, 1 for true
После правильной настройки события календаря мы готовы использовать ContentResolver для вставки новой записи календаря в соответствующий Uri для событий календаря:
Uri eventsUri = Uri.parse("content://calendar/events");
Uri url = getContentResolver().insert(eventsUri, event);