使用
Google Map
需要先注册,然后由注册网页颁发给你一个与证书相关联的
API
密钥。另外需要注意的是,由于一个密钥对应着一个证书,所以用同一证书开发的应用程序都必须用
同一个密钥。无论这些程序是不是相关联。当然你也可以注册多个密钥,但是每一个密钥都应该对应于一个特殊的证书。有时候可能会遇到这种情况。比如说多个独立的程序。
因为
MapView
元素必须关联于一个
API
密钥,所以在你将
MapView
元素应用到你的程序之前必须注册你的证书并得到一个
Key.
为了使你开始运用
MapView
更加简便,你可以简单的通过
SDK tools
注册一个
debug
证书并获得一个临时的
API key
。
如果你准备将你的程序与
Map
联系,你必须为你的程序做一个适合的加密密钥标记,而不是一个
SDK
的
debug
密钥。这也就意味着迷必须在
Google Maps service
上注册你的程序来联系你的证书,这样做了,你就将收到一个新的独特的与你的证书相联系的
Maps API
密钥。之后为了使在你的程序中的所有的
MapView
元素能够正常工作,你必须替换到
MapViews
中所有的
Maps API
密钥,这样你的程序就能将此密钥联系到你的现存证书上了。(而不是一个
debug
证书)。
一个
Maps API Key
其实是基于证书的
MD5
指纹的。
从你的标记的证书中获取
MD5
指纹
在访问注册页面之前,需要通过
Keytool
来获取响应证书的指纹。
首先,检查你想用哪个
Key
来关联你的程序并且确定包含这个
key
的
keystore
的路径。
之后,通过
-list
选项来启动
Keytool
,而不是目标
keystore
和关键别名。下面的表列出了你会用到的选项。如图1
这里有一个
Keytool
的命令,他为在
my-release-key.keystore
里的
alias_name
这个
key
获取了一个
MD5
证书指纹。如图2
Keytool
会提示你为这个
keystore
和
Key
输入密码。作为命令的输出,
Keytool
将会在屏幕打印出指纹。例如如图3:
一旦你得到了指纹,你就可以去
Maps API
的注册界面进行下面工作了。
获取
SDK Debug
证书的
MD5
指纹
当你在开发测试你的程序的时候,你或许会将你的程序当作测试模式,也就是说,
SDK build tools
会自动的通过测试证书来标记你的程序。为了让你的
MapView
元素准确的在这一阶段呈现
Maps
数据,你需要为你的测试证书注册一个临时的
API Key
。当你发布你的程序时,你必须为你发布的带有
Google Maps
服务的证书注册一个新的
API Key
。然后你必须将你程序中的
MapView
元素重新与
API key
进行关联。
为了为测试证书获取
MD5
指纹,首先进入测试
keystore
。默认情况下,
buid toos
将测试
keystore
创建在了
AVD
目录下。
AVD
目录的地址因平台的不同而不一样。具体如下,如图4
如果你用的是
Eclipse/ADT
并且不确定测试
keystore
的文字,你可以选择
Windows>Prefs>Android>Build
来查看全路径,这样你可以将它粘贴到一个
explorer
里面来进入包含有这个
keystore
的目录。
一旦你进入了这个
keystore
,通过
Keytool
名来来为测试证书获取
MD5
指纹:
如图5
为证书指纹注册
Google Maps
服务
当你准备为一个
Maps API Key
进行注册时,在浏览器中打开下面网页:
http://code.google.com/android/maps-api-signup.html
之后按照下面步骤:
1.
如果你没有
Google
账户,通过页面上的链接注册一个。
2.
仔细的阅读服务的
Android API
条款,如果你同意这些条款,通过屏幕上的选择框进行指出。
3.
将你要注册的程序所用证书的
MD5
证书指纹粘贴进去
4.
点击“
Generate API Key
”生成
API Key
。
服务会处理你的要求,将指纹与你的
developer
身份相关联并审议一个对应的
Key
。之后将返回一个结果页面个你你的
Key
字符串。
为了使用你的
API Key
字符串,再次复制并粘贴他到你要用的部分的代码段。
Note:
如果你不小心忘记了你的
Maps API Key
,你可以通过你的证书再次进行注册,注册服务会返回给你一个与该证书对应的相同的
API Key
。
将地图的
API Key
添加到你的程序中
一旦注册并获得了
API Key
,你必须将之添加到你的应用程序的
MapView
对象中,那样
Maps
服务才允许他们下载
Maps
成分。
对于
XML layout
领域里的
<MapView>
元素,将
Maps API Key
作为一个特殊属性的值添加进去
android:apiKey
,例如图6:
对于通过代码直接实现的
MapView
对象,将
Maps API Key
字符串作为构造方法的参数传进去。例如图7:
实现
MapView Elements
的最后一步
・请确保您添加了一个
<uses-library>
元素引用外部
com.google.android.maps
库,该元素必须是在应用程序的清单
<application>
元素的孩子。例如图8:
・通过你在
MapView
元素中应用的
API Key
所对应证书标记你的程序。
注意:但
API Key
发生改变时,要对所有应用
Key
的元素的
API Key
值进行变换。