次のコードでカレンダーを追加してみます。作成されたイベントは、携帯電話のカレンダーアプリで読み取ることができますが、オンラインのGoogleカレンダーに同期するだけです。誰かが私に問題を解決するためにいくつかのヒットを与えることができますか?
ここにいくつかの注意があります1.コードは私の実際の電話(Galaxy Nexus 4.1.1)で実行されました2.他のすべてのカレンダーイベントはGoogleカレンダーに同期できますが、追加されたプログラムだけは同期できません。
- -アップデート - -
フォローコードを変更すると
values.put(CalendarContract.Events.SYNC_EVENTS,1);
values.put(CalendarContract.Events.VISIBLE, 1);
-エラーが発生します
java.lang.IllegalArgumentException: Only the provider may write to sync_events
public void addEvent() {
long startMillis = 0;
long endMillis = 0;
Log.v("LOG", "entered addEvent");
//Calendar beginTime = Calendar.getInstance();
//beginTime.set(2012, 8, 11, 22, 0);
//startMillis = beginTime.getTimeInMillis();
startMillis = System.currentTimeMillis() + (3600 * 1000)*4;
//Calendar endTime = Calendar.getInstance();
//endTime.set(2012, 8, 11, 23, 0);
//endMillis = endTime.getTimeInMillis();
endMillis = System.currentTimeMillis() + (3600 * 1000)*5;
ContentResolver cr = getContentResolver();
ContentValues values = new ContentValues();
values.put(CalendarContract.Events.DTSTART, startMillis);
values.put(CalendarContract.Events.DTEND, endMillis);
values.put(CalendarContract.Events.TITLE, "Dog");
values.put(CalendarContract.Events.DESCRIPTION, "DogInDESCRIPTION");
values.put(CalendarContract.Events.CALENDAR_ID, 1);
values.put(CalendarContract.Events.EVENT_TIMEZONE, "eventTimezone");
values.put(CalendarContract.Events.SYNC_EVENTS,0);
cr.insert(CalendarContract.Events.CONTENT_URI, values);
}