October 20, 2009

Change Language

在android application裡面,如果要在程式裡面切換多國語系,可以參考底下這段code。
//change language preference
Resources aRes = getResources();
Configuration aConf = aRes.getConfiguration();
aConf.locale = iLocale;
DisplayMetrics dm = aRes.getDisplayMetrics();
aRes.updateConfiguration(aConf, dm);

不過這樣改過之後,在目前這個activity某些resource可能會沒有改過去,變成要重開activity才有作用。
此時可以在底下加入final Window win = getWindow();
win.onConfigurationChanged(aConf);

通知windowmanager configuration changed,應該就可以馬上改了。
不過這個作法是看log猜出來的,不曉得算不算正規。
如果有更好的作法歡迎討論。

October 7, 2009

Google Voice+Android

非常幸運的,前幾天排到google voice的邀請函。二話不說馬上找了註冊方式,繞了一大圈總算註冊過關。

先說一下什麼是google voice呢?基本上他並不是像skype這樣的voip provider,在他的使用情境裡面,收發話的雙方都還是需要有可以用來通話的電話服務的。而google voice的角色就是在於整合使用者擁有的各式各樣的手機、公司電話、住家電話、甚至SIP...等各種號碼成為一個google voice號碼。使用一個簡潔的網頁介面,讓使用者可以輕鬆管理。

google voice的管理介面可以根據聯絡人/群組去指定如果某人撥進來,要接給我的那一隻電話,或者直接進語音信箱。也支援文字簡訊。語音信箱內的留言還可以自動轉成文字email給使用者。....諸如此類的各種功能可以參考官方網站

如同網路上可以搜尋到的各式文章所言,想要註冊google voice需要有美國IP以及一隻美國電話。在美國以外地區的註冊方式林林總總,google一下就找得到了,就不在此贅述。底下記錄試用這幾天的心得感想。

先說註冊部份。

美國IP,我是用某篇文章寫的,在本機執行一個美國VPN的軟體解決。後來在ptt上有看到別人用設proxy的方式處理,個人覺得proxy的方式比較好,否則跑些奇怪的對岸軟體,有沒有什麼病毒木馬也搞不清楚。

美國號碼的話,我是去註冊某個SIP的免費服務,註冊之後可以得到一個幾天可以使用的美國號碼,再將撥入的號碼轉接到本機的google talk進行註冊認證。這邊比較需要注意的就是,google talk可以作到模擬電話按鍵音,幫你送出需要按的認證號碼,只是兩位數的認證號碼不可以一起按出去,要先按一個出去,再按另一個。這樣google那邊的認證機器才可以辨識。

不過當然,如果你既人在美國,又有美國手機就用不著這麼麻煩了。

以我目前是用Google Voice+Gizmo5+Siproid(Android)來接美國電話。

因為在google voice裡面可以設成我的號碼的,目前為止只有美國手機以及Gizmo5的SIP服務。所以註冊完了之後,就把所有打進來的電話都接到gizmo的號碼上。

之後gizmo可以轉接出去的方式有Skype、google talk、其他SIP或者一般電話。這邊目前為止,因為我想要用手邊的android手機來接電話,否則都得要開著電腦非常麻煩。所以我是採用android上的Siproid作為終端。

Siproid的設定,將gizmo的帳號密碼設進去之後,server設為proxy01.sipphone.com port:5060使用UDP這樣就可以了。online之後,在左上角會有一個小綠點,這時候就可以接聽撥打到google voice的電話了。

經過測試,這樣撥打進來的電話應該是沒有時間限制(至少我等了五分鐘還沒被切掉)。通話品質的話,我這邊聽到的音質算正常,不過撥打進來的那一邊聽到的聲音就有點糟糕了。稍稍有點斷斷續續,看起來似乎是Siproid這一端的問題。

如果願意用電腦接的話,使用skype、google talk或者gizmo音質應該都頗正常。只可惜google talk for android目前還沒有通話的功能。

另外還試過gizmo自己包的siproid版本GUAVA。介面相較於正版的siproid來說更陽春了點,並不好用。音質方面則是半斤八兩,都好不到哪裡去就是了。


然後簡訊方面。

google voice提供全球SMS簡訊免費。我試過傳給我自己的台哥大手機,正常且馬上就收到了。不過缺點是,似乎並不能打中文,收到的中文會消失不見。收簡訊的話,android上的google voice預設每隔15分鐘去query一次,所以時效上並不很即時,之外英文簡訊都還頗正常。


這樣試用一小段時間的感想是還不賴,若要說缺點的話,就是missing call竟然沒有任何通知,還要自己點到label去check,不曉得是忘了做還是怎樣,等等去寫個feedback好了。


嘆~ 所以目前還是只能仰望某S家的android版趕快做出來,這樣才能打便宜電話阿阿阿阿~ 再不出來我都快倒向iPhone去了~