2012年8月8日 星期三

GCM - Google Cloud Messaging FAQ

Google Cloud Messaging(GCM)是一個完全免費的推播服務,也就是能夠讓短訊息由客戶的第三方伺服器透過 Google 發給每個移動裝置的一個服務。

GCM 的前身 Cloud to Device Messaging(C2DM)服務也已經在2012年06月26號正式 Deprecated,不再接受註冊,必須改用 GCM。目前已有的 C2DM 仍可繼續使用。

使用限制

  1. Android 2.2 以上
  2. 有開啟 Google 服務的背景傳輸
  3. Android 4.0.4(不含)之前的手機要有一個 Google 帳號。

參數解釋

Client Side

  • Sender ID
    • 代表發送者的 ID。
    • 最多 100 個,超過以逗號隔開,如:"12345678,43218765"
    • 在 App 內指定要收哪些發送者的,用逗號隔開,App 收到時會包含此 ID。也就是說可以做不同角色的發送。

Server Side

  • collapse_key
    • Google 最多會存 4 個,超過不保證哪個會被忽略。
    • 如果今天是新郵件通知,使用者在關機時收到 100 個郵件,你不會希望使用者在手機打開時收到 100 次通知,就可以指定 collapse_key 讓使用者只會收到 1 次新郵件通知。
  • time_to_live
    • 最少 0 秒,最多 2,419,200 秒(3天)。
    • 某些通知所要傳達的事件可能是有時效性的,例如:有視訊電話打來、行事歷通知、奧運即時賽況分數…
    • 常常會和 delay_while_idle 設成 true 一起用。
  • registration_ids
    • 要發送的裝置 ID,每個 request 最多 1000 個。
  • data
    • 發送的內容,長度限制 4kb。
  • delay_while_idle
    • 如果裝置收不到,等到上線才會收到。

常見問題

  • Sender ID
    • 在 APIs Console 瀏覽器網址列的 Project 那串數字。
  • Sender Auth Token
    • Server 向 Google 發送推播的驗證
    • 在 APIs Console 的 Simple API Access 中的 API key

  • Registration ID
    • 由 Google 取回代表此裝置的 ID,要送給 Server 存起來。

2012年6月18日 星期一

Change ROM For Nexus Phone

Galaxy Nexus & Nexus S
官方 ROM 下載點
https://developers.google.com/android/nexus/images?hl=zh-TW

  1. 直接把電池拔下看手機背面的資訊,分辨自己手機的型號。
  2. 下載自己手機的 ROM
  3. 手機關機後,按住開關和音量鍵進入 Bootloader 模式。
  4. 解壓縮後執行 flash-all.sh

Root Yout Galaxy Nexus

參考:
http://www.modaco.com/topic/348161-01-feb-r4-superboot-rooting-the-gsm-lte-galaxy-nexus/

  1. 下載 Superboot r4 GSM,台灣是GSM。
  2. 在 Mac 上的話,用 command line 執行

    install-superboot-mac.sh

2012年6月10日 星期日

Decompile Android apk

參考:http://a4apphack.com/security/sec-code/extract-android-apk-from-market-and-decompile-it-to-java-source

下載完後,大概只要10 秒鐘。

  1. 使用 root 過的手機,從 /data/app 取出 .apk 檔。
  2. 下載 dex2jar ,執行 dex2jar.sh YOUR.apk,將 apk 轉為 jar 檔。
    http://code.google.com/p/dex2jar/
  3. 下載 JD-GUI 來看 jar 檔內的程式碼。
    http://java.decompiler.free.fr/?q=jdgui

2012年6月6日 星期三

NCR Encode In Java

到 Apache 下載 jar 檔
http://commons.apache.org/lang/download_lang.cgi

使用 StringEscapeUtils.escape() 即可。

參考:
http://stackoverflow.com/questions/2825985/how-to-convert-from-html-to-utf-8-in-java

2012年5月22日 星期二

Cocos2d-x Set Background Transparent

Cocos2d-x是一套可以支援多個平台上開發的 2D Game Lib
似乎有請到 Cocos2d 原作者加持,目前(May 2012)活躍度頗高。
http://www.cocos2d-x.org/

將背景設為透明(如果有需求是在後面疊相機的View)
http://www.cocos2d-x.org/boards/10/topics/4804

setZOrderOnTop(true);
http://stackoverflow.com/questions/2034822/android-opengl-es-transparent-background