星期四, 七月 02, 2009

讓iPhone行事曆與Google行事曆同步(3/3)

讓iPhone Calendar與Google Calendar同步(1/3)
讓iPhone Calendar與Google Calendar同步(2/3)

在上篇的Howto, 我們已經可以同步一個以上的Google行事曆到iPhone行事曆, 但是你應該很快發現一個很奇怪的問題-->為什麼有些Google的事件同步到iPhone的行事曆後, 但是iPhone的行事曆在事件快發生前並沒有發出警告通知?
於是你比對了這些同步到iPhone的Google事件, 發現了一些差異, 有些Event有通知, 有些Event卻沒有, 我將兩個截圖顯示如下


OK , 看起來問題可能出在在Goog行事曆新增事件的時候沒有加入提醒的設定, 於是你到Google行事曆的事件編輯畫面, 加入了一個提醒, 再與iPhone行事曆同步一次
這時候你可能會感到很挫折, 同步後, iPhone行事曆上的事件還是沒有提醒or提示的設定, 這到底發生了什麼事? 是Google行事曆的Bug or iPhone行事曆的Bug ? , 我猜兩方都有問題, 但是還好, 還是有解決之道, 經
過我的比對, 發現有些設定上的差異, 原來那些從Google行事曆同步到iPhone行事曆的事件會有提醒的設定是因為那些事件所屬的Google行事曆有設定Default通知功能, 我用以下截圖來檢視Google行事曆的設定

1. 到Google行事曆, 選一個行事曆的下拉功能表, 選擇通知

你會發現, 這個行事曆有一個預設的提醒通知

2. 以同樣方式, 點選另一個行事曆的通知, 你會發現, 這個由你自己建立的行事曆卻沒有預設的提醒通知設定

OK, 所以你大概知道發生了什麼事, 只要到這個Google 行事曆新增一個預設的提醒通知, 以後在這個Google行事曆新增的事件同步到iPhone後, 就會有提醒的設定.

結語: 
1. 我認為Google與Apple應該會在未來版本解決這個問題, 照理使用者就算沒有設定預設的提醒通知, 在個別事件設定了提醒通知, 應該也要將這個提醒通知設定同步到iPhone才對.
2. iPhone的行事曆是少數iPhone內建的軟體具有背景行程執行的功能, 很多iPhone上的Todo軟體應該都很希望可以利用這個管道讓他們的軟體也有通知功能, 但是事與願違, Apple卻遲遲沒有開放行事曆的API,
    於是我的ExpireTrack也只好繞了一個彎轉而去支援Google行事曆再將過期事件同步到iPhone行事曆, 當初我初始的想法是直接支援iPhone內建的行事曆, 希望Apple未來也可以開放行事曆API.




星期三, 七月 01, 2009

讓iPhone行事曆與Google行事曆同步(2/3)

讓iPhone Calendar與Google Calendar同步(1/3)

如果你已經設定好iPhone與Google Calendar同步, 很快你會注意到, 唉! 怎麼只有同步一個Google行事曆? 這個行事曆是你申請Google帳號後, google為你自動建立的行事曆. 還好Google有提供另外的文件教你如何設定同步
更多的行事曆(註:以我使用GData API開發Google Calendar client的經驗, 這個功能其實可以在iPhone上設定, 不知道為什麼Google還要多這一步?)

在Google的這份文件中提到, 你必須使用iPhone的Safari連到http://m.google.com/sync, 然後使用你的Google帳號登入, 再選擇你要同步那些行事曆 , 但是如果你的iPhone使用語言是中文, 也許你用iPhone Safari連到
http://m.google.com/sync 你會看到以下畫面, 還好, 並不是中文版的iPhone不支援多個行事曆同步, 只要將語言變更到英文就可以了

變更語言後, 會出現以下畫面
登入後, 點選iPhone


將要與iPhone同步的行事曆勾選後按Save, 就可以了



打開iPhone 行事曆, 就會看到多個Google行事曆了


在下一篇文章, 我將介紹, 如何讓同步到iPhone行事曆中的事件也具備有背景通知的功能.

星期二, 六月 30, 2009

讓iPhone行事曆與Google行事曆同步(1/3)

如果你是Google Calendar與iPhone的重度使用者, 你在iPhone OS 2.x時代應該已經知道如何將Google Calendar的event同步到iPhone的Calendar, 如果你還不知到如何設定與同步, 可以參考

但是在OS 2.x 我設定好之後, 這個功能馬上就被我丟到垃圾桶去了, 因為Google Calendar同步到我的iPhone Calendar後, 竟取代我原有的iPhone Calendar與電腦同步功能, 所有原有從iCal同步到iPhone Calendar的event全不見了:-(

上星期將iPhone升級到3.0後, 為了寫一篇ExpireTrack與Google Calendar與iPhone Calendar整合的小技巧, 於是又重新在iPhone上設定了Google Calendar, 這次的使用經驗感覺好太多了,原有的Event都存在, 而且可以
繼續保留與電腦端的同步設定. 據Google官方說明

Unless you want to delete all the existing Contacts and Calendars on your phone, select the Keep on my iPhone option when prompted. This will also allow you to keep syncing with your computer via iTunes.

看起來Apple與Google在iPhone 3.0的Calendar同步功能做了很不錯的改進, 很佩服這兩家公司是處於既競爭又合作的狀態.

那麼既然同步的功能強化許多, Google Calendar與iPhone Calendar的同步時機為何?, 目前我觀察到有兩種方法

1. 打開iPhone Calendar後過幾秒鐘, iPhone Calendar會開始與Google Calendar同步
2. 在設定的電子郵件/聯絡資訊/行事曆中必須將推播功能打開 , 在Google Calendar新增Event後, 這個Event會自動Push到你的iPhone calendar. (這應該是OS的背景程式達成的, 因為iPhone Calendar並沒有執行).

如果要讓同步更為及時, 可以考慮使用第二種方法, 但是相對的iPhone會比較耗電.

講到這裡, 是否會覺得這個Google Calendar的推播功能與3.0中被Apple大力提倡的Push Notification有異曲同工之妙?


在我看來Google Calendar Server端應該就是利用與整合Apple的Push功能來達到推播的目的, 這兩家公司關係可真奇妙.