Создать событие календаря из моего приложения без напоминаний по умолчанию

Я разрабатываю приложение, которое создает, обновляет и удаляет события в собственном календаре Google. Я создаю событие с помощью следующего кода:

ContentValues cvEvent = new ContentValues();
cvEvent.put(Events.DTSTART, startMillis);
cvEvent.put(Events.DTEND, endMillis);
cvEvent.put(Events.TITLE, strJobName);
cvEvent.put(Events.CALENDAR_ID, mlCalendarID);
cvEvent.put(Events.EVENT_TIMEZONE, "America/Los_Angeles");
Uri uriEvent = crEvent.insert(Events.CONTENT_URI, cvEvent);

Но проблема в том, что это событие создает напоминание по умолчанию, установленное пользователем в его календаре (Google).

Я также разрешаю пользователям добавлять напоминания в моем приложении. Итак, когда он добавляет напоминание, я вставляю напоминания в календарь Google по умолчанию. В этом нет проблем. Но когда пользователь не добавляет никаких напоминаний в мое приложение, календарь Google по умолчанию создает напоминания по умолчанию. Может кто подскажет, как решить эту проблему?

P.S: Я не использую адаптеры синхронизации. Я создаю и удаляю события и напоминания по собственной логике.

Я пробовал использовать

values.put(Events.HAS_ALARM, 0);

Но это бесполезно.


person Karthik Andhamil    schedule 26.09.2013    source источник


Ответы (2)


Как насчет программного удаления напоминаний с использованием идентификатора события, который вы получили после вставки события?

ContentValues cvEvent = new ContentValues();
cvEvent.put(Events.DTSTART, startMillis);
cvEvent.put(Events.DTEND, endMillis);
cvEvent.put(Events.TITLE, strJobName);
cvEvent.put(Events.CALENDAR_ID, mlCalendarID);
cvEvent.put(Events.EVENT_TIMEZONE, "America/Los_Angeles");
Uri uriEvent = crEvent.insert(Events.CONTENT_URI, cvEvent);

//added code
long eventID = Long.parseLong(uri.getLastPathSegment());
ContentResolver cr = getContentResolver();
cr.delete(Reminders.CONTENT_URI, Reminders.EVENT_ID+"=?", new String[]{eventID+""});
person Andrew T.    schedule 03.10.2013
comment
Я не мог подтвердить, размещается ли напоминание по умолчанию от Google сразу после создания события или после того, как событие просматривается в первый раз. Если это первое, то этот код удалит напоминание по умолчанию. Однако, если это последнее, то, боюсь, этот ответ не сильно поможет ... - person Andrew T.; 04.10.2013
comment
Нет, он не удаляет напоминание, поскольку синхронизация с Google является асинхронной, поэтому это ничего не удалит. К несчастью. - person Eddy Verbruggen; 20.08.2015

Не знаю, как это сделать в Android, но если вы посмотрите документацию Google, то в POST-запросе, используемом для вставки события в календарь, есть поле с именем Remders.useDefault.

Имя свойства: Remders.useDefault
Значение: boolean
Описание: применяются ли к событию напоминания календаря по умолчанию.
Примечания: возможность записи

https://developers.google.com/google-apps/calendar/v3/reference/events/insert

person Leonardo    schedule 29.09.2013