2010年12月15日 星期三

Android筆記_如何申請Google Map API Key(模擬器用)

本來12月1日很開心的發了一篇文章,想說12月要有好的開始,認真的記載學習日誌,沒想到又被報告、簡報、文件、教育訓練搞的頭腦頓頓的,今天抽空對之前的程式做一個小整理,才又驚覺已經15日了,雖無法過之前高點,也不能讓2010年最後一個月變低點,趕快發一下之前就截好圖的簡單記載。

--------本文----------

在Android開發中,『地圖』是很重要的一塊,許多以前幻想的功能,都可以跟著你的行動裝置進而實現,以往GPS+地圖最常想到的都是導航、巡覽等等的事情,而設備通常不是一般大眾會去買或是會去擁有的,但現在GPS已經變成行動裝置,或是說智慧型手機一個必備的設備之ㄧ。

若是提到地圖,當然就不能不提Android發啟者Google的Google Map了!

想要在手機上顯示Google Map,就必須要先有使用Google Map API的鑰匙,而這邊又分為兩種,一個是真的於手機上使用,另一個就是在模擬器中使用。

本篇主要記載如何在模擬器中使用,直接看步驟:
1. 先於Eclipse找到debug.keystore的位置(Eclipse→Windows→Preferences→Android→Build)


2. 執行cmd,找到Java的bin資料夾(若你也是使用XP,位置是:C:\Program Files\Java\jre6\bin)

3. 輸入取得MD5的指令,可以取得MD5的編碼。(以下C:\Documents and Settings\57237\.android\debug.keystore為第一步驟查到的路徑位置)

keytool -list -alias androiddebugkey -keystore "C:\Documents and Settings\57237\.android\debug.keystore"
-storepass android -keypass android


4. 進入Google Map API Key的申請網站(http://code.google.com/intl/zh-TW/android/maps-api-signup.html),並且輸入剛剛取得的MD5編碼。

5. 就可以取得Android Maps API的金鑰。

6. 將取得的Map API Key貼到com.google.android.maps.MapView的android:apiKey。

註:該金鑰是針對MD5編碼所產生的,所以要開發的電腦都必須要自行申請,使用別人的金鑰是無效的。

等買了手機就可以發一篇,如何申請Google Map API Key(實機用),XD。

39 則留言:

kolen 提到...

快敗台android手機來用,XD。

ola的家 提到...

我要衝了!

喵喵探險家 提到...

等等,Google Maps API 3.0 不是不用key了?

ola的家 提到...

應該是Web Appliction跟Android Appliction不同吧~~

ola的家 提到...

等我買了手機再繼續研究這個問題。

Darren Shen 提到...

請問這裡所謂“模擬器用”和“實機用”有什麼差別呢?
如果我在開發APP時是用實機debug,我該申請那種呢?
如果我的APP準備上架了,又該申請哪種呢?

ola的家 提到...

要使用google map就必須要先申請 Maps API金鑰,
而申請金鑰就要先取得MD5編碼,

使用模擬器時是使用該台電腦產生的MD5,
而使用實際手機時要使用個人keystore產生的MD5。

Darren Shen 提到...

瞭解~ 感謝解答

梅子 提到...

抱歉請問 我按照您的方法做 顯示出來的 不是MD5是SHA1...怎麼半?

梅子 提到...

我是win7的

ola的家 提到...

增加-v的參數,
將keytool -list -keystore C:\...,
改為keytool -list -v -keystore C:\...。

梅子 提到...

大大隊android 熟悉嗎?

我想請問 按鈕美化設計 我有看到大大的文章

可是改變字型(中文字型) 我不知道如何改變..大修部分我看不太懂0.0
我有看到有人用tff 可是我用都不可以0.0 想問大大 如何改變按鈕 或者 輸入時 還有text 上的字型 像是我要改成標楷體0.0

謝謝你>< 我是小小心手 抱歉ˊˋ

梅子 提到...

打錯字 是大部分 不是大修....

梅子 提到...

啊 還有還有 mapviwe 是只要打上程式碼就會出現了吧?

不用相
按鈕那些要拖拉物件0.0?

看到範例r.java裡有顯示 想說是不是要拖拉才會建立在r.java上

ola的家 提到...

改變字型我沒有做過,可是你要用字型可能要確認字型的版權問題。

mapviwe要在layout裡面定義。

Zue Chen Lin 提到...

不好意思 想請教您 java.lang.Exception: Keystore file does not exist: keystore.jks 出現這個問題如何解決 謝謝

ola的家 提到...

這個問題我沒有遇過,你可能要檢查你輸入的指令是否正確。

jerry3839 提到...

您好:
我使用有了一個範例一點入程式就進行定位
使用的是 呼叫initLocMgr() 初始化 LocationManger 的方式,程式可以執行,應該已無其他錯誤,但按下定位後卻顯示無法取得最新位置,想請問我應該要如何讓程式知道模擬器位置,還是它自己會偵測到本機的位置?

ola的家 提到...

如果是模擬器要模擬GPS位置,要到DDMS的介面,找Emulator Control內有一個Location Control,設定經緯度後可以送給模擬器,這樣模擬器就會有GPS點位讓你使用。

如果你要模擬改變位置,就改變經緯度以後再送一次。

註:模擬器必須在Hardware的部分加入GPS support。(可到AVD Manager中編輯已經有的模擬器將其加入)

匿名 提到...

大大妳好:
不好意思請問一下,就是我照上面步驟已經申請到API的KEY,RUN程式也沒有BUG,但不知道為何不管怎樣試都是往格灰底的畫面,看過很多人的教學但是就是找不出原因,是否能跟大大要連絡方式,想請教一下幫忙DEBUG。
非常感謝

ola的家 提到...

如果程式沒有問題,模擬器卻都是網格,通常是MD5跟debug.keystore沒有對應,或是網路連線有問題。

你的模擬器可以連到網路嗎?或是你的專案有加入網路權限嗎?

ola的家 提到...

blog的問題我都會回,或是寄到gmail,但回覆時間不定。

匿名 提到...

大大不好意思,可以請問你Gmail帳號嗎?我把專案寄給你幫我看看,非常感謝~

jerry3839 提到...

謝謝您的意見!! 但我開啟Location Control打經緯度按send
,模擬器卻顯示無法取最新位置,我也有加入GPS SUPPORT的
功能了,想再請問您是不是還要加入什麼要如何定位,我是使用一個教學的範例程式碼,請問可以寄信給你看看嗎~~

匿名 提到...

請問一下唷~為什麼地圖跑出來會是衛星地圖,跟平常的GOOGLE MAP有些不同請問問題出在哪?非常感謝你

ola的家 提到...

電子郵件在右上角檢視完整簡介裡面有。

ola的家 提到...

地圖呈現的模式可以藉由:
mapview.setTraffic(true);//一般地圖
mapview.setSatellite(true);//衛星地圖
來進行設定。

匿名 提到...

版大好:
我想請問一下,是否能利用FACEBOOK API+GOOGLE API做結合呢?可以打卡,留言.....這些功能。

還有我想請問一下,android能否跟網路上的相簿連結,可以直接從手機只要點選一下就能將照片馬上上傳PO到網路上。

還有GOOGLE API是不是沒辦法做路線規劃?因為想做跟旅遊有關係的APP所以才有以上這些問題。
還麻煩大大回答,在此非常感謝。

匿名 提到...

版大好:
忘記順便問說,就是我的地圖有用街道但是不知道為什麼,啟用起來會出現灰色小格子就像九宮格那樣分部裡面是打X,是不是哪裡有問題呢?並沒有向網路上會在接到周圍出現藍色線,還有我用模擬器抓取GPS定位但我進去DDMS裡面直接設定經緯度但是地圖上卻沒有標示出來。
非常感謝

ola的家 提到...

1. 打卡功能要去查fb的sdk,如果有相關方法可以呼叫,當然就可以搭配寫出來。
2. 網路相簿也是一樣的意思,該相簿必須要有相對應的api或是sdk可以使用。
3. 路徑規劃可以用google所提供的directions service,就可以操作google的路徑規劃。
4. 你所說的灰色格子打X這個我不太懂意思。
5. GPS資料送給模擬器後,你的程式需要有相對應的處裡,才會在地圖上呈現出來。(看你要用繪的,還是mapview顯示位置的函式)

匿名 提到...

版大您好:
但現在要申請api金鑰所要輸入的好像是 這個格式: SHA1;package
但照著步驟查到 SHA1 並進行申請 得到一組key 也將該設定的xml檔設定好後
卻總是出現方格而已 可以請問一下可能造成這種情況的因素嗎? (package我打的是自己件理好的專案的package)

ola的家 提到...

新的方式我還沒有測試過,但是出現方格,通常都是沒有對應到key的關係。

匿名 提到...

請問api key忘記了想重瓣 不過他在命令提至字窗裡 他叫我輸入密碼? 可是我記得你上面寫的做法沒有輸入密碼阿 還是有預設密碼?? 現在無法解決

ola的家 提到...

"api key"說的是google的嗎? google map的key申請不是在命令提示字元。

另外,google map現在改第二版了,最好現在開始都使用第二版。

陳哲凱 提到...

不好意思 我是Win 7的
我照上面打的程式打 (我都有改路徑
但輸入到CMD檔 都一直說"不是內部或外部指令, 可執行的程式或批次檔"

我不太會用 CMD的檔 拜託版主幫幫><
(我的cmd檔一打開就是 "C:\windows\system32>")

ola的家 提到...

你需要先從C:\windows\system32到C:\Program Files\Java\jre6\bin,在執行文章中的指令。

移過去的指令是 cd C:\Program Files\Java\jre6\bin

陳哲凱 提到...

感謝板大 已取得金鑰了!!! >0<
專題得以繼續了 (灑小花~~

陳哲凱 提到...

板大那個 去哪裡找com.google.android.maps.MapView啊?
我發現我的Manifest 和xml檔都找不到!

那個版大有貼"Google Maps Android API v2 電腦模你版本"嘛?

ola的家 提到...

v2的我沒有特地寫一篇模擬器版的。

因為Android還是在實機上面測試比較準確。

張貼留言