前段时间做的一个应用中使用到了 google map 当时也是遇到了各种问题啊,今天有点时间就回忆一下。
首先是使用步骤了:
1.安装和更新Extras下的 Google Play services。
打开android sdk manager,查看是否安装了 google play services,没有的话,就先安装。然后将其导入eclipse,file->import->android->Existing android code into workspace ,选择sdk安装目录下extras/google/google_play_services,然后确定,这时在Package Explorer中就会看到导入的项目
2.获取api key
下面主要说Debug的数字证书获取。
为了获取api key 我们要先得到SHA1 fingerprint,在CMD命令行下运行:keytool -list -v -keystore "C:\Users\xu duzhou\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android 命令,引号中为debug.keystore文件的位置,不知道的可以查看Window/Preferences/Android/Build
运行后得到结果如下:
其中 SHA1 后面的这一串十六进制的数字就是我们需要的了。
下面就要去注册appkey了,
使用Gmail登录 https://code.google.com/apis/console/
点击左侧的services 找到 Google Maps Android API v2 将其状态改为 On 如下图
然后点击左侧的APP access,在右侧的页面中点击Create New android key.. 参考下图
进入如下界面
在输入框中填写我们在上面获取到的SHA1值,注意结尾用“;”隔开然后输入项目包名。如下
11:B1:69:00:7D:F5:2D:B3:E0:03:67:87:5D:95:89:13:7F:A7:59:A1;com.test 然后点击 Create 生成key.得到如下的一个key
3.开始代码编写工作
将获取到的 api key 加入AndroidManifest.xml文件
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="your_api_key"/>
<permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE" android:protectionLevel="signature"/> <uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE"/>加入其他的权限许可
<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"/>
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
<?xml version="1.0" encoding="utf-8"?> <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.MapFragment"/>
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
在项目中将上面导入的google_play_services_lib加载进来