使用google play services lib时 提示需要更新版本

今天一到公司,就收到了鬼子的来信,说是之前发过去的程序定位太慢,而且经常超时。虽然我用的是Android原生的定位,但是我以为定位慢、定位不准等问题只有在天朝才会发生,没想到Japan也会有这种情况。好在之前做过一个Google Map V2的地图程序给鬼子使用,里面使用了google play service的gms定位,既然原生定位他们说不行,那就只有换成google play services中的定位服务了。

         将之前下载好的google-play-services_lib工程作为lib工程,在我的原先的主工程中添加对此工程的依赖(具体可以参考点击打开链接)。将之前使用LocationManager进行定位的地方换成com.google.android.gms.location.LocationClient,另外不要忘了在AndroidMenifest.xml中添加以下gms版本信息(如果填错或者不填,都会在运行时报错):

android:value="@integer/google_play_services_version" />

         修改完毕,运行OK,一切都看似非常顺利。大部分国内手机都无法运行google_play_services的应用,原因是没有安装google play框架和google_play_services,因此为了确保万无一失,我使用了从日本带回来的sony测试机,结果,问题来了。在连接google_play_services服务时,返回连接失败,原因尽然是本机的google_play_services需要更新!google_play_services提供了非常完善的更新服务,GooglePlayServiceUtil的getErrorDialog方法会帮我们搞定一切,但是,我却不能这么做。鬼子在式样方面非常执着,如果我告诉他们要在开机时检查一下google_play_services的版本,版本较低的情况下还要更新,估计够他们讨论好几天,而且八成最后还是打回让我换方案。哎,只能换一个思路了。

         实在没有办法,我就只有将google-play-services_lib的版本降低,报错时显示本机安装的google play service的版本是316XXXX,可是在ADT中找到的最早的版本是v12,具体版本号是3265130,竟然还是比较高,去google官网上找,竟然没找到。只有去万能的github上搜了,一下子找到了三个版本2012110、3025110和3136110。当然是越低越好了,可是2012110和3025110竟然没找到LocationClient,最后只好用3136110的版本。

         好在这个版本在各个机器上运行都没啥问题,不需要再进行更新。确认好了之后,交给了鬼子进行测试,他说明显速度快了很多,感觉还是非常满意的。

         但是有个疑问,国外一般都用什么定位呢?使用Android原生定位的话不会有问题?如果使用google play services的gms定位的话,安装的google play services版本不够的话还要提醒用户进行升级?这样岂不是用户体验很差?求大神指点。

你可能感兴趣的:(Android)