Добавить событие в календарь программно - PullRequest
0 голосов
/ 16 апреля 2019

Я разрабатываю менеджер событий. Есть события с датой / временем начала и окончания. Мне нужно реализовать возможность вставлять события из приложения в календарь Android.

Вот код, который я написал:

val startMillis: Long = 1555406400000
    val endMillis: Long = 1555499400000
    val name = "Event"
    val description = "Awesome event"
    val allDay = false

    val values = ContentValues().apply {
      put(CalendarContract.Events.DTSTART, startMillis)
      put(CalendarContract.Events.DTEND, endMillis)
      put(CalendarContract.Events.TITLE, name)
      put(CalendarContract.Events.DESCRIPTION, description)
      put(CalendarContract.Events.ALL_DAY, allDay)
      put(CalendarContract.Events.CALENDAR_ID, 3) //Don't know why `3`, just copied from some example from inthernet
      put(CalendarContract.Events.EVENT_TIMEZONE, ZonedDateTime.now().zone.id)
    }

    val contentUri = CalendarContract.Events.CONTENT_URI
    activity.contentResolver.insert(contentUri, values)

Этот код отлично работает на устройстве Android 5.0 (событие отображается в приложении календаря), но не работает на устройстве 7.0. WRITE_CALENDAR и READ_CALENDAR разрешения предоставляются.

Что не так с моим кодом? Почему это не работает на Android 7.0?

...