(官方网站可参考 http://developer.android.com/google/play-services/setup.html)
2012年3月6日Google Market 改名为Google Play,相应的Google 不断在丰富及加强其Google Play 服务APK的内容,以供安卓甚至iOS应用开发者使用。这些服务包含Google地图,书店,翻译,广告等多项内容。开发者使用这些Google提供的服务,必然使得Google在市场上具有更强的话语权。
1. 安装
要使用Google Play 服务,首先你要安装Google Play services SDK,打开Android SDK Manager,选择“Google Play services”后点击“install packages...”,如下图。当然你也可以顺便安装其他你感兴趣的SDK包,指不定什么时候能用到呢。导入
安装完以后你就能用的吗?不行。你必须导入“Google Play services”库到在你的工作文件夹。点击菜单“File -> import...”,在import对话框中选择“Existing Android Code Into Workspace”,在下一步指定已安装“Google Play services”库的路径(在Android SDK安装目录下\android-sdk\extras\google\google_play_services\libproject\google-play-services_lib)于是你就看到下面的界面状态。记得必须选中”Copy projects into workspace“,否则在以后的开发中会遇到问题。 然后,你可以将“Google Play services”库加入你需要的工程中。打开工程的属性对话框
在左侧选择“Android”属性,点击右下方“Add”按钮,可以选择添加在当前工作区目录中所有有效的库项目。完成上述步骤,你就可以选择添加“goole-play-services_lib”了。
(注意,要是编译项目出现类似“your_string_name" is not translated in af, am, ar, be, bg, ca, cs, da, de, el, en-rGB, es, es-rUS, et, fa, fi, fr, hi, hr, hu, in, it, iw, ja, ko, lt, lv, ms, nb, nl, pl, pt, pt-rPT, ro, ru, sk, sl, sr, sv, sw, th, tl, tr, uk, vi, zh-rTW, zu strings.xml /projectname/res/values line 44 Android Lint Problem”错误,请参考http://blog.csdn.net/tonyfield/article/details/8577166)
可用性检查
如同 Google Play 服务简介中说的,Google Play 通过Google Play 商店应用为Android2.2以上的用户提供服务更新。但更新可能无法立即满足所有用户,要列出所有Android设备厂商的名字会越来越难:-)。重点: 由于难于预料每个设备的状况,在访问Google Play服务特性以前,你必须在应用中检测一个兼容的Google Play服务APK是否有效。对大部分应用,最好的时机是在主活动(MainActivity)的onResume()
函数。
在用户设备上的Google Play服务APK一般有四种状况。
- Google Play Store 应用的当前版本已经安装, 最近的 Google Play 服务APK 也已经被下载。
- Google Play Store 应用的当前版本已经安装, 但最近的 Google Play 服务APK还没有被下载。
- 有一个旧的 Google Play Store应用, 它不会主动下载Google Play 服务更新。
- Google Play 服务APK无效或者处于关闭状态,一般这是由于用户过去卸载或关闭了它。.
第一种情况是成功状态,一般都是这种情况。但另外三种情况仍然会出现在某些用户的设备上。Google Play 服务客户端库有工具函数来判断当前的 Google Play 服务 APK 是否足以支持你正使用的客户库版本。如果不支持,客户库将让用户去 Google Play Store 来下载Google Play 服务APK.的当前版本。
注意: 搜索Google Play Store是找不到Google Play 服务 APK的。客户库发现设备没有Google Play 服务 APK或其不兼容时,将提供一个Google Play Store的深度链接。
它依赖于你在应用中选择的合适位置。例如,如果是你的应用需要 Google Play 服务,你可能需要在程序第一次启动时做这件事。另一方面,要是Google Play服务对你的应用知识一个可选部分,你可以在用户进入相关功能前进行检查。
- 用
isGooglePlayServicesAvailable()
函数可以查询设备上Google Play 服务APK的状态,它返回结果码。 - 如果结果码是
SUCCESS
, 那Google Play 服务APK是新的,你需要的功能可以正常进行。 - 如果结果码是
SERVICE_MISSING
,SERVICE_VERSION_UPDATE_REQUIRED
或SERVICE_DISABLED
,那调用getErrorDialog()
以向用户显示错误消息,它将允许用户从Google Play Store下载APK或在系统设置界面打开相应功能。
int errorCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this.getActivity()); // 因为我的代码在Fragment里,所以用getActivity(),要是你的代码在 Activiy中,用this就好
if( ConnectionResult.SUCCESS != errorCode )
{
GooglePlayServicesUtil.getErrorDialog(errorCode, this.getActivity(), 0).show();
}
署名要求
如果您使用谷歌地图的Android API,在应用程序中,你必须将谷歌Play服务署名文本作为你应用的“法律声明”内容的一部分。谷歌服务署名文本可以通过调用
GooglePlayServicesUtil.getOpenSourceSoftwareLicenseInfo
获得。
例程代码
例程代码和谷歌服务SDK捆绑在一起。首先你必须按前面步骤添加库项目google-play-services_lib
。然后你通过类似过程将例程代码加入你的工作目录。
- 选择 File > Import > Android > Existing Android Code Into Workspace 并点击 Next。
- 选择Browse...,输入
<android-sdk-folder>/extras/google/google_play_services/samples/maps
, 点击 Finish。 - 选择Project > Properties,选择 Java Build Path, 找到 Libraries。
- 选择Add External Jars包含以下 jar文件,点击OK:
<android-sdk-folder>/extras/android/compatibility/v4/android-support-v4.jar
- 添加自己的 Google Maps Android API 密钥。
- 选择 Run > Run 来测试例程。