5

ネイティブの 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 カレンダーがデフォルトのリマインダーを作成します。誰でもこの問題を解決する方法を教えてもらえますか?

PS: 私は同期アダプターを使用していません。独自のロジックでイベントとリマインダーを作成および削除しています。

使ってみた

values.put(Events.HAS_ALARM, 0);

しかし、それは役に立たない。

4

2 に答える 2

4

イベントを挿入した後に取得したイベント ID を使用してプログラムでリマインダーを削除するのはどうですか?

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+""});
于 2013-10-03T13:42:13.263 に答える