针对定位服务,android的API里提供了LocationManager这么一个类

通过getLastKnownLocation(String provider)以及requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener)方法可以获取到当前位置

此类提供两种定位方式:GPS定位和网络定位(基站+WIFI)

GPS定位的provider是LocationManager.GPS_PROVIDER, 网络定位则是LocationManager.NETWORK_PROVIDER

不过这两个接口都受限于系统设置,如下图:

如果上面两个开关都关了,自然就无法获取到GPS经纬度了(如何摆脱这种限制通过其他方式获取经纬度在下一章再介绍)

(假定开关都打开的前提)

GPS定位的获取方式

通过getLastKnownLocation(String provider)传对应参数,此时得到的Location并非当前的GPS位置信息,而是上一次获取到的位置信息

requestLocationUpdates才是真正去请求位置信息的更新,可以理解为调用该方法后,会安装指定的规则去收集GPS信息,例如你请求locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,30 * 1000, 0, myListenGPS);

则每隔三十秒钟会收集一次GPS信息,如果收集到的话,会保存到系统存储中(保存至系统存储属个人理解)并通知myListenGPS监听器位置信息改变同时调用监听器onLocationChanged(Location location),那么每次我们调用getLastKnownLocation事实上就是从这个系统存储中获取这个信息,所以如果我们不调用此方法,getLastKnownLocation获取到的就

可能是N天以前的位置信息了。

网络定位的获取方式

其实同GPS差不多,保存到系统存储中的位置自然是跟GPS分开的。

二者区别

GPS定位准确,但在室内几乎无法定位而导致无法收集信息,即有定位盲区;网络定位偏差较大,但无盲区,只要有网络一般都可以收集的到;

另外经过本人手机实测,如果requestLocationUpdates的时候设置最少更新时间1S,最小更新距离为0的时候,GPS定位在有信号的情况下的确是每秒都刷新位置,

但网络定位大概是四五十秒更新一次(可能跟手机信号有关),如果把它设置为60秒的话,基本上两种定位方式都在六七十秒后更新位置信息

所以这个时间还是有些偏差的,这点大家务必要注意

部分童鞋可能对网络定位(基站+WIFI)不是很理解,简单来说就是你当前接入WIFI就使用WIFI定位,当前接入2G或3G网就是基站定位

其实针对基站和WIFI有单独的定位方式,只不过系统帮我们封装了这么个智能的方法,好是好就是受限于设置开关

为了达到实时定位的功能,现在广为流传的是GPS+基站定位方式,该基站定位即单独的定位方式,不受开关限制,所以在各个应用中用得比较多

如何基站定位且听下回分解

为了让大家更好理解本文,附上工程,连接如下:

http://download.csdn.net/download/geniuseoe2012/4252947

更多相关文章

  1. Android(安卓)6.0+ TelephonyManager 使用示例(1) 获取网络和 SIM
  2. Android(安卓)关于没有处理异常导致应用程序崩溃的处理
  3. ADB简单调试技巧及Android(安卓)JNI crash调试定位错误信息
  4. 一个简单、漂亮、功能强大的Android日志程序:logger
  5. Android(安卓)Shell命令dumpsys
  6. Android(安卓)Crash 报告反馈
  7. PopupWindow位置
  8. Android系统信息获取 之六:网络连接状态信息获取
  9. Ant编译编译APK、打包打包JS

随机推荐

  1. 1、搭建android开发环境
  2. android SDK升级连接不上服务器解决方案
  3. android资源合集
  4. NFS挂载android文件系统
  5. Android点击2次返回按钮退出应用程序
  6. 2011.09.29(2)——— android 图片缩略图
  7. Android系统启动过程
  8. 编程回忆之Android回忆(Android的强制横屏
  9. Android四大组件之~~BroadcastReceiver
  10. Android开发资料[2012-12-16]