Android-добавление события календаря без напоминания

Я использую следующую функцию для добавления события в календарь:

public String addEventToCalendar(long startDate, long endDate, String recurrenceRule, boolean isAllDay, String title, String description, String location, long calendarID) {
    ContentResolver cr = context.getContentResolver();
    ContentValues values = new ContentValues();
    TimeZone timeZone = TimeZone.getDefault();
    values.put(CalendarContract.Events.DTSTART, startDate);
    values.put(CalendarContract.Events.DTEND, endDate);
    values.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone.getID());
    if (recurrenceRule != null)
        values.put(CalendarContract.Events.RRULE, recurrenceRule);
    values.put(CalendarContract.Events.TITLE, title);
    values.put(CalendarContract.Events.DESCRIPTION, description);
    values.put(CalendarContract.Events.CALENDAR_ID, calendarID);
    values.put(CalendarContract.Events.ALL_DAY, isAllDay);
    values.put(CalendarContract.Events.EVENT_LOCATION, location);
    if (ActivityCompat.checkSelfPermission(context, Manifest.permission.WRITE_CALENDAR) != PackageManager.PERMISSION_GRANTED) {
        return null; // we don't have the right permissions
    }
    Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI, values);
    String eventID = uri.getLastPathSegment();
    return eventID;
}

Это работает, но в результате календарного события, есть 30 минут напоминание! Я не могу понять почему. Есть какие-нибудь подсказки?
Большое спасибо.

2 ответа

  1. Похоже, что напоминание по умолчанию добавляется после вставки события календаря.

    То, что вы можете попробовать, это проверить, есть ли какие-либо напоминания, связанные с вашим событием сразу после его вставки. И удалите его, если это так.

    CalendarContract.Reminders.query(contentResolver, eventId, projection)
    

    даст вам список напоминаний, связанных с eventId

    Если курсор содержит какое-либо напоминание, вы можете удалить его с помощью :

    getContentResolver().delete(ContentUris.withAppendedId(CalendarContract.Reminders.CONTENT_URI, reminderId), null, null);
    

    docs : http://developer.android.com/reference/android/provider/CalendarContract.Reminders.html

  2. Попробуйте добавить это

    ContentValues values = new ContentValues();
    values.put(CalendarContract.Events.HAS_ALARM, 0);
    

    Имеет ли событие сигнал тревоги или нет. Имя столбца.

    Тип: INTEGER (boolean)

    public static final String HAS_ALARM = » hasAlarm»;