2016-08-01 6 views
8

私のアプリでは、ユーザーはGoogleカレンダーに特別なイベントを追加できます。アラーム/リマインダー/通知なしでイベントが追加されることを願っています。ユーザーのカレンダーの中には、「イベントの前日、午前9時」などのリマインダーの既定の設定があります。彼らは、デフォルトの設定にもかかわらず、まったくのアラームを持っていないので、リマインダーのGoogleカレンダーのデフォルト設定を無効にする

はどうやってイベントを追加することができますか?

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のサービスと同期された後にのみアラームが追加されたようです。どうすればそれを防ぐことができますか?

+0

あなたは、イベントを追加した後、すべてのイベントの通知を削除しようとしたことがありますか? –

+0

いいえ、ここで試してみます。 – TamarG

+0

リマインダを削除するにはどうすればよいですか? – TamarG

答えて

2

あなたはCalendarProviderBroadCastReceiverを設定することができます。プロバイダに変更が発生したときに発生します。

<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であなたの挿入イベントIDを保存し、onReceive()にリマインダーを削除することができます。

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