V2 版本有几个注意事项:
(参考: http://developer.android.com/google/play-services/setup.html)
<android-sdk-folder>/extras/google/google_play_services/
. <android-sdk-folder>/extras/google/google_play_services/libproject/google-play-services_lib到任何地方.我这里是复制到D:\code. 然后再eclipse中选择 File > Import, Android > Existing Android Code into Workspace. (注意: 这里是 Android > Existing Android Code into Workspace, 而不是General > Existing Projects into Workspace, 否则是无法导入的.)
导入示例程序.
<android-sdk-folder>/extras/google/google_play_services/samples/maps到D:\code 下.
然后选择File > Import, Android > Existing Android Code into Workspace,把此程序导入到Eclipse中.(注意: 这里是 Android > Existing Android Code into Workspace, 而不是General > Existing Projects into Workspace, 否则会出现大量错误.)
这个工程导入后可能会出现很多问题,请尝试使用以下方法解决:
1. 在此工程上点击右键,选择Properties>Android, 在右下方的Library选项中如果出现红叉,先把它删除,然后点击添加按钮,把前面导入的google-play-services_lib工程加进来
2. 另一个问题就是android.support找不到,这个是缺少android-support-v4.jar,可以通过在工程上点击右键,选择Android Tools > Add Support Library, 会从网络上下载.如果网络下载有问题,也可以在工程中新建目录libs,然后把此文件从<android-sdk-folder>
\extras\android\compatibility\v4\android-support-v4.jar复制到新建目录一个就可以了.
-
获得Goole Maps API Key
(参考: https://developers.google.com/maps/documentation/android/start#the_google_maps_api_key
http://developer.android.com/tools/publishing/app-signing.html)
获得Google Maps API Key 在V2版本中需要如下几个步骤:
-
查看程序签名的SHA1认证指纹.
在开发模式下,默认会使用C:\Users\<你的用户名称>\.android\debug.keystore这个自动生成的debug状态的签名文件,可以通过Windows>Preferences>Android中的Default debug keystore进行查看.
接下来进入你的系统的命令行控制台中,切换到你安装的JDK的bin目录中输入keytool -v -list -keystore C:\Users\<你的用户名称>\.android\debug.keystore,密码是android,查看"证书指纹"中的SHA1中的内容,这个内容记下来,接下来会使用到.
-
创建Google Maps API Key.
访问Google APIs Console(https://code.google.com/apis/console).如果没有登录,就先登录.登录后,如果是首次使用,会出现让你创建API工程的页面.
点击Create project后会跳转到services页面,需要在这个页面选择你要使用的API.这里我们选择Google Maps Android API v2.
之后会跳转到服务条款确认的页面,接受后,在显示的页面中左边列表选择”API Access”,然后点击Create new Android key... 按钮.
在弹出的对话框中填写SHA1认证指纹和程序的包命,中间用分号分隔(google自带的google map v2示例程序的包命是com.example.mapdemo):
0E:10:94:C7:B9:FD:15:62:27:FC:E7:FC:0C:05:59:A7:18:41:F5:B2;com.example.mapdemo
点击create按钮后,就创建了一个新的API key:
-
配置运行示例程序
-
打开示例程序的AndroidManifest.xml, 把上面生成的API key复制到以下位置:
- 现在,这个程序可以在手机中运行了(不能运行在模拟器中).如果手机中没有安装Goole Play Services和Google Map,程序会崩溃,在Android Logcat视图中可以看到提示相关东西没有安装.这种方式非常不友好,我们应该添加一些代码,提示用户安装安装缺少的东西.
在MainActivity.java中的最下面添加如下代码:
//
======= For Google Maps Check============
public
boolean
isGoogleMapsInstalled() {
try
{ ApplicationInfo info
=
getPackageManager().getApplicationInfo(
"
com.google.android.apps.maps
"
,
0
);
return
true
; }
catch
(PackageManager.NameNotFoundException e) {
return
false
; } }
public
OnClickListener getGoogleMapsListener() {
return
new
OnClickListener() { @Override
public
void
onClick(DialogInterface dialog,
int
which) { Intent intent
=
new
Intent(Intent.ACTION_VIEW, Uri.parse(
"
market://details?id=com.google.android.apps.maps
"
)); startActivity(intent);
//
Finish the activity so they can't circumvent the check
finish(); } }; }
然后在onCreate方法中添加一些代码,如下:
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState); setContentView(R.layout.main); ListAdapter adapter
=
new
CustomArrayAdapter(
this
, demos); setListAdapter(adapter);
//
======= For Google Maps Check============
if
(
!
this
.isGoogleMapsInstalled()) { AlertDialog.Builder builder
=
new
AlertDialog.Builder(
this
); builder.setMessage(
"
Install Google Map ?
"
); builder.setCancelable(
false
); builder.setPositiveButton(
"
Install
"
, getGoogleMapsListener()); AlertDialog dialog
=
builder.create(); dialog.show(); } }
现在再运行,就会提示用户安装缺少的内容.