覆盖提醒的Google日历默认设置

在我的应用中,用户可以在Google日历中添加特殊事件。 我希望在没有任何警报/提醒/通知的情况下添加事件。 某些用户的日历具有提醒的默认设置,如“活动前一天,即9:00”。

我如何添加事件,以便尽管有默认设置,它们根本不会有任何警报?

ContentValues eventValues = new ContentValues(); eventValues.put("calendar_id", calendarId); eventValues.put("title",title); eventValues.put("allDay", 1); eventValues.put("dtstart", dtstart); eventValues.put("dtend", dtend ); eventValues.put("hasAlarm", 1); // I tried both 0 and 1, none of them solved the problem! eventValues.put("hasAttendeeData", 1); eventValues.put("availability",1); 

编辑:似乎只有在事件与Google的服务同步后才会添加提醒,几分钟后,而不是立即。 我该怎样预防呢?

    您可以在CalendarProvider上设置BroadCastReceiver 。 当提供者发生任何变化时,它会被触发:

            

    因此,当向事件添加提醒时,将触发此操作。 您可以在SharedPreferences保存插入的事件ID,然后在onReceive()删除提醒:

     context.getContentResolver().delete(CalendarContract.Reminders.CONTENT_URI, CalendarContract.Reminders.EVENT_ID + "=?", new String[]{Long.toString(eventId)});