2012-09-25 39 views
0

我有一個應用程序,可以在任何版本的Jelly Bean之前使用。我一直拉着頭髮好幾天。看來,我在設備上顯示的編程方式創建的事件拒絕發送到網絡日曆。它看起來似乎一般是同步更快(因此更好),但似乎打破?是否有任何事件必須在事件上設置,以允許它同步,或保持它不同步?某些日曆事件不會在Jelly Bean上同步?

我問,因爲我使用設備上的日曆手工創建的事件 - 它們同步等。我通過編程創建的新事件確實會觸發設備上的ChangeObserver,並顯示在設備日曆上,而非遠程。所以在封面上必須有一些魔法,以防止這些事件被髮送,從而節省帶寬? - 這是我可以想象的優化,已經被添加到果凍豆。

如果你知道這樣的任何行爲,請讓我知道。如果沒有,請讓我知道如果同步在您參與的任何自定義應用程序中的Jelly Bean上正常工作。非常感謝您的幫助!

下一步將構建一個小測試應用程序,可以證明這種失敗。但我希望這很容易,你們其中一位已經知道這個問題。

回答

0

這花了很長時間才發現。我希望它能幫助別人。 在添加事件,我打電話平時

ContentValues values = new ContentValues(); 
values.put(Events.DTSTART, startMillis); 
values.put(Events.DTEND, endMillis); 
values.put(Events.TITLE, title); 
values.put(Events.DESCRIPTION, description); 
values.put(Events.EVENT_LOCATION, location); 
values.put(Events.CALENDAR_ID, mCalendarTag.mID); 
values.put(Events.EVENT_TIMEZONE, TimeZone.getDefault().getDisplayName()); 
Uri uri = mContentResolver.insert(Events.CONTENT_URI, values); 

此前果凍豆,這工作得很好。用果凍豆,線:

values.put(Events.EVENT_TIMEZONE, TimeZone.getDefault().getDisplayName()); 

失敗沒有任何通知!這必須改爲:

values.put(Events.EVENT_TIMEZONE, TimeZone.getDefault().getID()); 

然後一切正常。真正的困難是用getDisplayName()創建的事件是本地創建的,但它永遠不會遠程同步。我當然希望別人看到這一點,併爲他們節省了好幾天的時間。

相關問題