最近几天在学习如何将谷歌地图应用在android的开发程序中,确实遇到了一些问题,同时也由于我的大意,走了一些弯路。下面,我谈谈,我的一些想法和感受:
1.在android SDK中预装的add-on中提供了一个Map 扩展库com.google.android.maps,利用它就可以在android的应用程序中加上强大的地图功能了。它位于F:/android-sdk-windows/add-ons/google_apis-7_r01/libs(也就是你的SDK的安装路径下面,这里只是一个例子,我把它安装在了F盘下面)。不过在使用Android Maps API功能之前,你还需要申请一个Android Maps API Key。
2.申请一个Android Maps API Key
对于这个,网上有很多解决的办法,我也曾试着用了一下,但是在取得debug.keystore的MD5值的时候,有些麻烦,而且有时候会 出现很多错误,不用也罢。以下是我解决的步骤:
1)找到你的debug.keystore文件所在的路径。
证书的一般路径为:打开eclipse,选择Windows———>Preference———>Android———>Build,其中Default debug keystore的值便是debug.keystore的路径,当然别的途径也可以得到,这里就不提了,因为这就是捷径,有捷径干嘛不用?
2)取得debug.keystore的MD5值
首先在DOS下进入debug.keystore文件所在的路径,上面的一步已经得到,然后执行命令:
keytool -list -keystore debug.keystore(这个命令和网上说的解决办法不太一样,但简单了很多,而且也不容易出错)
这时可能会提示你输入密码,这里输入默认的密码“android”,即可取得MD5的值
3)获取Maps API Key
打开浏览器,输入网址:http://code.google.com/intl/zh-CN/android/add-ons/google-apis/maps-api-signup.html(当 然,网上很多,也是这样干的,但是他们的网址似乎都有一些问题,书上的有些也不对,这是自己通过实践,得出的这样的网址,绝对 没有问 题)。当然,前提是你必须有一个google账户,如果没有,可以临时注册一个。然后,打开google页面,输入code,一步步的查找,也可以找到,最终就会得到我一开始写的那个网址。(我建议大家还是这么做比较好,吃现成的东西,永远不会学到东西,而且也不会记得很牢,所以,你还是按我说的一步步找就可以了)。在打开的页面上,输入你在步骤2里得到的MD5认证指纹,勾选同意协议,按下“Generate API Key”按钮,即可得到我 们申请到的 API Key
4)在main.xml配置文件里添加如下的代码:
<com.google.android.maps.MapView
android:id="@+id/MapView01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:apiKey="0VCtgYqXDXHfzETwYIVNs-4IHkt8phKbBmhv2Vg"(注意这里要添的就是我们刚刚申请得到的Maps API Key,我这里添的就是我得到的Key值)
/>
5)同时我们也要在AndroidManifest.xml添加如下几行代码:
在 <application/>前面添加如下代码:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET"/>
这都是一些用户的权限,具体的你可以去androidAPI里去查,它里面已经给我们说的很清楚了。
同时,在<application/>里面添加如下代码:
<uses-library android:name="com.google.android.maps"/>(用户库,记住,我们使用的是谷歌公司的地图,所以要在这下面找,而这些在android的SDK里面是没有的)
以上,就是我在学习使用Android Maps API 开发地图应用程序的时候的一些解决办法,借助了SDK文档,也借助了网上的一些资源,当然也有不少是通过看书学到的。
下面我说说我遇到的问题以及错误的原因:
1>按照如上步骤,我在获取取得debug.keystore的MD5值时候,很容易,也很快就获取了,但在获取Key值的时候,由于我的大意,获取的API Key其实是不对的,导致程序在模拟器上运行的时候,会显示一些个灰格子,而不是我所希望看到的地图,这就是由于你的Map API Key值错误的原因导致的;
2>对于Android SDK2.1或者以后的开发,我建议用:http://code.google.com/intl/zh-CN/android/add-ons/google-apis/maps-api-signup.html这个网址去获取Maps API Key,否则会出现一些问题。我就是因为一开始,没有使用上面的网址,导致Map API Key的取值错误,从而效果出不来。