2012.1.8
昨天提交申请哈哈,今天开通了,为了表达我的喜悦之情 写写我这几天一直困扰我的Google Map ,
前一阵公司给配了个Mac 谁想项目运行后地图没了,怎么办申请 android google map API key吧。糟糕,不能申请弃用了,现在是Google Maps Android API v2了
之前用的都是v1,用的是MapView,好吧,只能认命了。废话不再多说,开始android 的Google Maps Android API v2吧
之前参考了http://www.cnblogs.com/mengdd/archive/2013/01/01/2841390.html 可是没有走通
Google Maps Android API v2的参考文档
https://developers.google.com/maps/documentation/android/(哇,都是英文,字典伺候)
你看懂了吗,反正我没看懂
好了 开始了 Getting Started
1.首先安装Google Play services SDK
打开Eclipse -> Window -> Android SDK Manager
我们还需要这东西,Google Play services(http://www.androidpolice.com/2012/09/26/google-play-services-can-now-be-installed-manually-from-the-play-store/)安装到你的手机上吧
2.获取API key
终于到获取API key 了,v2到底有什么不同呢?
想一想我们v1的时候API key是怎么申请的,怎么用的呢,是MD5,是Mapview
v2做了什么修改呢 是SHA1,当然他也不在需要Mapview了,那我们要API key有什么用呢 下面你就知道了
获取Maps API key需要两样东西:应用的signing certificate和它的package name。
获取这个key之后,把它加在应用程序的AndroidManifest.xml文件里即可。
获取数字证书(digital certificate)信息
数字证书有Debug和Release两种,下面主要说Debug的。
你只需要在你的命令行里照着这个操作就好了
我用的是Mac 所以
我的乱码了 不过没关系 我们需要的是SHA1(别忘了复制下来备用哦)
这难道是API key?不是的,下面才是我们需要的
在浏览器中 打开Google APIs Console(https://code.google.com/apis/console/)
用Gmail的账户登录,如果是第一次的话,需要创建项目,默认情况会创建一个叫做API Project的项目。
点击进入API Access
刚刚的SHA1还在吧。。
照着这个Example 的格式: SHA1;包名
是不是有了API key.
再点击进入Services
3.创建我们的自己项目应用程序
准备工作都做完了 现在开始做我们自己的项目
注意包名应该和申请key时候的包名一致
一.打开AndroidManifest.xml文件
我想下面你们可以自己看api自己做的:
1.在<application>下添加
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="your_api_key"/>
注意your_api_key置换成自己申请的API Key。
2.添加权限
<permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE" android:protectionLevel="signature"/> <uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE"/>
注意将com.example.mapdemo替换成你的包名
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
3.<manifest>下添加
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
4.保存
二。开发布局文件main.xml
<?xml version="1.0" encoding="utf-8"?>
SupportMapFragment
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps."/>
三。打开MainActivity.javapackage com.example.mapdemo
import android.app.Activity;
import android.os.Bundle;
public class Main Activity extends FragmentActivity{
@Override
protectedvoid onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}}
4.第一次运行是不是出错了呢
解决这个问题,首先需要把Google Play services的类库加载进来:
在Eclipse里面选择:File > Import > Android > Existing Android Code Into Workspace然后点击Next.
之后Browse..., 找到路径下的<android-sdk-folder>/extras/google/google_play_services/libproject/google-play-services_lib, 然后选择Finish。
然后添加对这个库的引用:
在自己的项目上右键,选Properties,左边选Android,然后在下面的Library里面Add刚才的google-play-services_lib。
5.再次运行
是不是会告诉你获取Google Play 服务
那就要检查是否将Google play 和Google play services 安装好了呢
你的地图出来了吗,还没有吗 ,那就要检查你的手机上是否安装了google地图咯