星期二, 5月 20, 2014

Corner HUD 介紹



首先到Google Play搜尋Corner HUD就找的到這個App,
這是一個抬頭顯示的導航應用,
只要切換到HUD 模式把手機放擋風玻璃下方,
手機的畫面就會投射到擋風玻璃上,
當然你也可以不使用HUD模式直接看,

這個App和Navier HUD這個App風格很像,因為作者都是我...
只是Navier HUD當初只畫出行走的路線,
沒有其他道路,因此希望藉由開發這個App
來補足當初還沒完成的功能,
當然Navier HUD還是有這個App所沒有的特色。

星期三, 3月 19, 2014

Holo style : the Android style



我是一位Android開發者,獨立開發者,
從UI設計到程式開發一手包辦,
很多會寫程式的人,程式的部份可以自己搞定,
但多數人會卡在『糟糕;我沒有美術的天份』這裡,
認為自己弄不出夠水準的介面設計。

於是會將程式介面外包給設計師來做,
本來術業有專攻,那也沒什麼不好。
問題是,有些介面設計師手拿iPhone, iPad,
連Android手機都沒用過,
你怎麼能期待他比你更知道Android的介面應該是什麼樣子呢?

星期四, 2月 20, 2014

Hangout 造成發送與接收SMS問題


Google 在Android 4.4改以Hangout來取代原本預設的簡訊App,因此在App如果有寫到傳送或接收SMS功能時,在Kitkat上或是有安裝Hangout的舊版本(Android 4.3及以下)手機上,可能會運作不正常。

在接收SMS時,因為Hangout有可能由使用者在Google Play下載,裝在舊版的手機上,為了避免有兩個預設的SMS App在收到SMS時都提供通知,因此若有安裝Hangout,Hangout似乎會攔住"android.provider.Telephony.SMS_RECEIVED"這個broadcast event,來避免舊的簡訊App也產生notification,因此如果您的App有聆聽此event來獲得收到的簡訊時,在安裝Hangout之後會發現收不到"android.provider.Telephony.SMS_RECEIVED"。此時解決方法是在Broadcast Receiver上加上priority,並將priority設為大於3,如此一來便能解決收不到"android.provider.Telephony.SMS_RECEIVED"的問題。請參考此討論

<receiver android:name="com.google.android.apps.babel.sms.AbortSmsReceiver" android:permission="android.permission.BROADCAST_SMS" android:enabled="false">
    <intent-filter android:priority="3">
        <action android:name="android.provider.Telephony.SMS_RECEIVED" />
    </intent-filter>
</receiver>
在傳送SMS時在Kitkat上Google 已經把簡訊App拿掉,因此已以往Intent的方式來發送SMS可能會遇到找不到預設App的問題,解決方式如下:請參考此討論

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) //At least KitKat
    {
        String defaultSmsPackageName = Telephony.Sms.getDefaultSmsPackage(activity); //Need to change the build to API 19

        Intent sendIntent = new Intent(Intent.ACTION_SEND);
        sendIntent.setType("text/plain");
        sendIntent.putExtra(Intent.EXTRA_TEXT, smsText);

        if (defaultSmsPackageName != null)//Can be null in case that there is no default, then the user would be able to choose any app that support this intent.
        {
            sendIntent.setPackage(defaultSmsPackageName);
        }
        activity.startActivity(sendIntent);

    }
    else //For early versions, do what worked for you before.
    {
        Intent sendIntent = new Intent(Intent.ACTION_VIEW);
        sendIntent.setData(Uri.parse("sms:"));
        sendIntent.putExtra("sms_body", smsText);
        activity.startActivity(sendIntent);
    }

星期二, 10月 15, 2013

Code Lab - Communication among Android devices : A chat room


此Android程式練習是為成大資工系-電腦通訊網路課程 所設計的一個Code Lab,目的在介紹Android之間的裝置通訊,以及在Android上面如何實作一個聊天室應用,其中包含在Server端的HttpServerlet以及GCM Api的使用。
此App運用可以上安裝此App的所有使用者彼此間進行聊天。
課程時間:3小時

投影片下載

星期三, 10月 09, 2013

Code Lab - RESTful App on Android : A POI Map

此Android程式練習是為成大資工系-電腦通訊網路課程 所設計的一個Code Lab,目的在介紹REST架構的運作原理,以及在Android上面如何實作包含Google Map、Http Request、AsyncTask及UI Adapter應用。

此App運用DEH API來開發一個簡易的LBS服務,查詢地圖中心附近2公里內所包含的景點有哪些。

課程時間:3小時
投影片下載
在Google Play下載:
Get it on Google Play

星期三, 10月 02, 2013

CoWallet

Coming soon on Google Play!

CoWallet makes expense management of a group easier.



星期三, 6月 26, 2013

Suunto Ambit:一支和Navier HUD操作邏輯酷似的錶


不久前買了一支手錶Suunto Ambit,原本只是期待有個功能穩定具有GPS軌跡記錄功能的手錶,不過卻發現其操作邏輯和Navier HUD的使用邏輯相當接近。

荷蘭廠商Suunto將Suunto Ambit其定位為適合專業登山及運動的電子錶,以硬體規格來看,這隻錶具有GPS接收器、氣溫計、氣壓(高度)計、羅盤四種Sensor,並且可以無線連接心律帶,因而能夠提供GPS定位、軌跡記錄、提供氣溫、垂直水平移動速度、距離、高度等資訊,並具有100米防水的規格,也就是你絕對可以帶著去進行大部分水中的活動,並絕對可以提供大部分運動時的需求。


透過Movecounts帳號,可以輕易的將運動記錄保留下來,並分享到其他社群網站當中。並且在Movescount網頁中調教你的手錶設定


只要安裝Moveslink這個軟體,並將手錶連接到電腦上,就能進行資料同步。

但以上都不是重點,以下才是重點XDDD

到底哪裡和Navier HUD有夠相似呢?以下兩點說明:

自定資訊顯示面板

Suunto Ambit中提供了幾種預設的運動模式,也可以自行調整或新增運動模式,每種運動模式能夠顯示最多八個畫面的內容,每個畫面可以自行調整要顯示哪些資訊。




舉個例子,我希望在我跑步這個模式當中,能夠有五個畫面來顯示我需要的訊息,其中第一個畫面要顯示包含跑步累積時間、累積的距離、以及我的心律。第二個畫面則要顯示跑步的速度、平均速度及當時的氣溫。第三個畫面顯示我的上坡累計里程和下坡累計里程、目前時間...

當我在執行跑步的模式時,我就能透過按鈕來切換到不同的畫面,查看我所定義的畫面。因此你可以調整各種運動所需要取得的內容,來因應當運動的需求。

這樣的概念與Navier HUD可以依照需求來新增與編輯所需的面板,並且為每個面板加入適當的元件,邏輯一致。但Navier HUD因為手機畫面較大,能夠調整元件的位置較自由。Suunto Ambit則因為所配備的Sensor而能夠有更多移動資訊來源。

路線導航

Suunto Ambit因為具備GPS Sensor,因此也具備了簡單的導航功能,由於手錶操作限制,在使用導航功能之前,你需要在Movecounts先規劃完路線,並連接手錶與電腦將路線匯入之後,就可以開啟導航功能。


和Navier HUD同樣,你得先在地圖上找出要走的路,啟動導航之後,你只會看到該走的路線,而不包含其他的叉路。

除了這些以外,Suunto Ambit也把App的概念帶進來,在Suunto Ambit當中所指的App,其實是以簡單的Script將本來已經有的數值資料,經過額外的計算產生另一個你所想要知道的資料。

舉例來說,我常常一次跑步跑5公里,所以當我在跑步時想知道依我現在跑步的速率,以及累計的里程數來算,究竟還要跑多少時間才能跑完5公里?或者單車騎士在行進過程到底做了多少次衝刺?

這些資料在原本的手錶當中並沒有提供,使用者卻可以利用撰寫程式碼來建立符合自己需求的App,將計算結果放到某個運動模式的畫面中,並可以選擇把它分享在App Zone當中。


如果你懶得自己寫,或者不會寫程式,可以直接到App Zone當中找到適合你使用的App,其中已經有多達一千多個App,有很大的機會有其他人已經寫了你需要的計算了。

這真是一支很酷的手錶,並且耗電也在可接受的範圍(沒使用GPS時,可以使用約30天,連續使用GPS且設定每秒一筆資料時,可以支撐八小時,和一般軌跡記錄器差不多),還有很多功能小細節沒有講,只好自己去體驗。這絕對不是勸拜文,如果你不小心拜了,也要記得連Navier HUD一起拜阿阿阿...


星期六, 4月 13, 2013

抬頭顯示DIY





常常有使用者問說在白天的時候,使用Navier HUD時是不是會看不清楚?
是的,如果在大太陽下把手機放擋風玻璃下肯定會看不清楚,
但如果需要在白天也能使用抬頭顯示,其實還是有方法可以自己DIY做到,

反光隔熱紙


只要到汽車用品店購買一張反光隔熱紙,貼在手機映射的位置上,
就能讓抬頭顯示影像在白天更清楚。
一般市售隔熱紙都是一大張,因此需要依照自己的手機大小,動手裁切成適合的尺寸。
我覺得在駕駛座左下角是最適合的位置,也不會擋到視野。

止滑墊


且為了避免手機會在前方會滑來滑去,
您可能還需要一個小小的止滑墊,也是在汽車用品店可以買到,

車充與電源線


在使用抬頭顯示時,通常會把手機亮度開到最大,這時螢幕耗電量將大增,
因此如果是長途使用時,會需要以車充來補充電源,車充在便利商店就可以買到。


如此一來,配合上Navier HUD您就有一個專業的抬頭顯示環境囉。

在這裡下載Navier HUD
Android app on Google Play

星期三, 3月 13, 2013

Google Partner Day 2013

真高興能夠有機會參與Google Partner Day活動,這是我第一次參加,今年舉辦地點在台北寒舍艾美酒店,活動著實讓我獲益良多,
活動主要分成兩個部分,Adsense和AdMob,我當然是選聽AdMob的部份

多"螢"為活動主題

寒舍酒店的場地


廣告類型和位置擺放的注意事項


Sam Lu 聊成功經驗

這張圖很清楚的解釋使用px與dp在不同解析度螢幕的差異

包含WhosCall的營運長和Sam Lu、Google代表等成員的座談


與會者的App Logo,Navier HUD也在上面

我認為其中最有幫助的是討論到如何讓自己的App被Google Play feature的部份,
雖然現在我的app還沒有被feature過,不過我有信心那只是不久之後的事情罷了(自以為..) :D
參加完活動又點燃了我的雄心壯志了

2013我們一起成長吧