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

在我的应用程序中,用户可以将特殊事件添加到他们的Google日历。 我希望事件将被添加,而不会有任何警报/提醒/通知。 一些用户的日历具有用于提醒的默认设置,如“事件之前的一天,在9:00”。

我如何添加事件,使他们不会有任何警报,尽pipe默认设置?

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服务同步后几分钟之后,才会添加提醒。 我怎样才能防止它?

Solutions Collecting From Web of "覆盖Google日历提醒的默认设置"

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

 <receiver android:name="CalendarChangeReceiver"> <intent-filter> <action android:name="android.intent.action.PROVIDER_CHANGED" /> <data android:scheme="content" /> <data android:host="com.android.calendar" /> </intent-filter> </receiver> 

所以当提醒被添加到事件,这将被解雇。 您可以在SharedPreferences保存插入的事件标识,然后删除onReceive()提示:

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