2012年8月16日 星期四

第一支 Android App 上架,從無到有的全記錄 (2)

這樣說吧, App 裡頭要使用 Google Map 的資料,需要 Google 的授權。所以, Google 要求開發者要登記一個 Google Map API 的金鑰。App 還在開發中的時候,先使用 Debug 版的金鑰就可。至於發佈版的金鑰,後面再說吧。

取得金鑰前,先要簽署 Maps API。

Sign Up for the Android Maps API - Android Maps API - Google Code

image

打勾,填入 MD5 Fingerprint,然後按下 "Generate API Key"。

MD5 Fingerprint 哪裡來??

Android SDK 附有一個名稱為 "debug.keystore" 的檔案。

  • Windows Vista / Windows 7: C:\Users\<user>\.android\debug.keystore
  • Windows XP: C:\Documents and Settings\<user>\.android\debug.keystore

在這個檔案的目錄內,建立一個 bat 檔。內容寫一行

<jdk path>\bin\keytool -list -v -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android >> debug_map_key.txt

<jdk path> 是 Java SDK 的安裝目錄。

執行 bat 檔以後,會將輸出內容寫到 debug_map_key.txt 檔案裡。檔案裡就可以看到這麼一段 :

別名名稱: androiddebugkey
建立日期: 2012/1/18
項目類型: PrivateKeyEntry
憑證鏈長度: 1
憑證 [1]:
擁有者: CN=Android Debug, O=Android, C=US
發出者: CN=Android Debug, O=Android, C=US
序號: 4f162768
有效期自: Wed Jan 18 09:59:04 CST 2012 到: Fri Jan 10 09:59:04 CST 2042
憑證指紋:
     MD5:  1F:04:CE:54:D2:57:0D:7C:11:1F:5D:A1:B2:D6:E8:93
     SHA1: 4E:D1:A5:3E:68:F2:05:C8:09:9C:29:9C:A9:38:29:4C:3C:3B:A8:1A
     SHA256: C9:DA:67:77:3F:4B:94:F5:AE:47:7F:FF:A6:14:9C:B5:96:10:00:7E:99:C8:45:40:A3:64:9F:83:BA:12:56:D1
     簽章演算法名稱: SHA1withRSA
     版本: 3

那一行 MD5 就是我們要的。

複製貼上到網頁上,按下 "Generate API Key"。

image

到此,我們就取得金鑰了。

回到 Eclipse IDE 的程式碼。

在 main activity 的 layout xml 檔案裡,把 android:apiKey 那一段,"your key" 改為我們取得的金鑰。

    <com.google.android.maps.MapView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mapview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:apiKey="0vn4fYcAmXsjC902Q8puaWZLabVkY0t5jqjRzSw"
    android:clickable="true" />

再來,因為我們需要透過 Internet 下載地圖資料,所以,要在 AndroidMenifest.xml 裡加入 Internet 的 Permission。

<uses-permission android:name="android.permission.INTERNET"/>

現在 Build 執行看看吧...

2012-08-16_10-25-01

看到地圖囉!!!

可是看不到街道、看不到自己的位置...

那是後續的工作...

沒有留言: