4
我有一個小應用程序,其中一個功能包括具有用戶的當前狀態。這會顯示給使用我們後端的其他用戶,並且在某些情況下,還應該有與用戶的日曆同步的選項。如何添加不成爲交換暫定會議的Android日曆事件?
我使用ICS日曆API:s來執行此同步,並且它適用於Google日曆。如果用戶選擇與交換賬戶同步,但狀態項顯示爲狀態爲暫定的會議請求。
因爲我對日曆的經驗有限,所以我的問題是應該與日曆事件一起使用的字段,以使其顯示爲交換中的常規事件以及Google日曆。我直接插入事件,而不使用意圖,因爲目標是爲了使用戶無縫。當前的代碼如下所示(狀態是我的狀態數據模型)。
ContentResolver cr = getContentResolver();
ContentValues values = new ContentValues();
values.put(CalendarContract.Events.DTSTART, status.StartTimeLocal.getTime());
values.put(CalendarContract.Events.DTEND, status.StopTimeLocal.getTime());
values.put(CalendarContract.Events.TITLE, status.DisplayName);
values.put(CalendarContract.Events.DESCRIPTION, status.Text);
values.put(CalendarContract.Events.AVAILABILITY, CalendarContract.Events.AVAILABILITY_BUSY);
values.put(CalendarContract.Events.STATUS, CalendarContract.Events.STATUS_CONFIRMED);
values.put(CalendarContract.Events.GUESTS_CAN_INVITE_OTHERS, false);
values.put(CalendarContract.Events.HAS_ATTENDEE_DATA, false);
values.put(CalendarContract.Events.CALENDAR_ID, mCalendarId);
values.put(CalendarContract.Events.EVENT_TIMEZONE, "Europe/Stockholm");
Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI, values);
當我嘗試在它與交流能夠正常同步,因此似乎有可能在手機日曆中手動添加一個新的項目。但從我的應用程序,我很難讓它工作。
我實施這個解決方案,因爲我不是從這樣的問題同步適配器,但來自常規應用程序。如果我從我的應用程序嘗試此操作,則會出現只允許同步適配器寫入所有者帳戶的錯誤。此外,這似乎指的是整個日曆(CalendarContract.Calendar)而不是事件(CalendarContract.Events)。 – BMB
@BMB是否設法插入一個狀態設置爲從您的應用程序確認的事件? – Maragues
不,我還沒有設法通過交換事件顯示爲暫定會議之外的事情。如果我找到解決方案,將在此更新。 – BMB