要使用 Google Map 提供的地图服务数据,必须要申请一个 Android Map API Key。
在申请 Android Map API Key 之前,必须要准备 Google 的账号和给应用程序签名的证书。如果没有 Google 账号,可以到google 官网申请一个(如果 google 官网打不开,可参考网址:https://jingyan.baidu.com/article/6079ad0e624cfd28fe86db5f.html)。
Android 应用程序发布时,必须使用证书进行签名。在之前的开发过程中,虽然一直没有涉及证书的问题,但是实际上,我们一直在使用 Android 开发环境提供的 Debug 版本的证书来签名应用程序。
在调试阶段,所有的应用程序都是使用预定义的 debug.keystore 中的 androiddebugkey 来签名的。
如果是 Windows XP 系统,该文件被存放在 Documents and Settings/<user>/Local Settings/Application Data/Android 目录下;如果是 Windows 7 或者 Windows 10 系统,则存放在 user/<user>/.android 目录下
在程序调试阶段,可以使用 Debug 版的证书申请签名密钥。下面是申请 Android Map API Key 的具体步骤。
运行 cmd 命令,跳转到 debug.keystore 所在目录。计算机是 Windows 7 或 Windows 10 系统,直接输入“cd .android”,按回车键即可。
继续在上一步的基础上输入“keytool –list –keystore debug.keystore”命令,按回车键,然后输入 keystore 密码,默认密码为 android,然后按回车键,即可得到根据调试密钥生成的 MD5 认证指纹的值。
如图 1 所示。该 MD5 认证指纹唯一,在调试程序时应该重新生成自己的 MD5 认证指纹。
Keytool.exe 是 Java JDK 提供的密钥工具,被放置在 <JDK安装目录>/bin 目录下,需要将该目录设置到 Path 环境变量里才能在 CMD 窗口中直接使用该命名
参数 -list 表示在 CMD 窗口中打印生成的 MD5 指纹,-keystore<kestore_name>.keystore 表示证书所在的 keystore 文件,具体操作如图 1 所示
图 1获取 debug.keystore 的 MD5 值
打开浏览器,并在浏览器中输入网址:https://developers.google.com/android/maps-api-signup?hl=zh-CN,登录自己的 Google 账号,在申请页面选择“I have read and agree with the terms and conditions”选项,然后输入步骤 2 得到的 MD5 认证指纹值,单击 Generate API Key 按钮,页面跳转后即可得到 Android Map API Key,如图 2 所示。
图 2申请Android Map API Key页面
根据 MD5 生成的密钥信息如图 3 所示,并且提供了使用 MapView 的示例代码,将该代码作为一个组件复制到工程的布局 XML 文件中,就可以直接使用了。
使用 MapView 组件必须制定 apiKey 属性,若 apiKey 不能与签名密钥匹配,则不能正常显示地图。
图 3MD5 生成的密钥信息