2008 某一天,你的朋友突然失蹤不知去向,你想要從某幾個支援 OpenSocial 中查到朋友的朋友電話(先假設有),手機上有一個 Android 平台可以用,上網後將這些電話條列,然後一個個打過去問。
因為這個練習跟之前做的練習有關連,很多地方省略掉,建議參照著一起看:
- My OpenSocial Gold App 一友一兩金
- 三年等待結束,Dojo 1.0 與 OpenSocial 練習曲
- Cross Domain Ajax and OpenSocial 跨域資料源
- Android and OpenSocial 開放社會的變形金剛
URL url = new URL("http://your.opensocial.container/container.json");但這方法要實現練習的情境有點問題,就是目前陽春的容器沒有實現 People Data API Developer's Guide: Protocol,所以 container.json 或是 container.data.xml 還沒辦法照 OpenSocial API 的規定提供,目前只有支援 OpenSocial 的 JavaScript API 而已。
URLConnection urlconn = url.openConnection();
// handle http response
Intent i = new Intnet(Intent.CALL_ACTION);
i.setData(Phones.CONTENT_URI.addId(your_friend_phone));
startActivity(i);
所以還是採用另外一種作法,實做一個 OpenSocial 的 App 稱作 Friend2Call,使用 Android 的 browser 來當 JavaScript 執行平台,直接跑 OpenSocial API 抓出朋友資料,輸出 tel:規格的連結如下面的樣子。
href="tel:(886)123456778"這次實做比較單純,因為資料不需要像Cross Domain Ajax and OpenSocial 跨域資料源這篇一樣跨網域,朋友資料都可以在 conatiner 中找到,所以不需要使用 dojo.io.script.get。
可以用瀏覽器直接看 OpenSocail Container Friend2Call,但是那個按連結功能需要 Android browser 模擬器才可以運作。程式碼 Source Code 可以到樂連LinkXD Download下載。
執行時請注意,這種作法必需要用下面的按鍵啟動撥電話功能,不能直接使用點選模式。接下來可以考慮加入練習的是 Grid (1.0) | The Dojo Toolkit部份,這部份可以參考Simple Dojo Grids來實做。
雖然最終沒有開發 Android UI 的應用,不過練習過程中發現幾個可以注意的事項:
- 用 Eclipse 跑之前,最好先開好 emulator.exe,不然有時候程式跑不出來。
- R.java 自動化資源編號太省事了,xml 資源越來越多卻不會越來越難找,用 R.補字就找到,比較不會錯掉。
去部落格曬曬陽光
LinkXD