Android之地理信息服务·Android的定位服务
地理信息服务
1 Android的定位服务
通过获取移动设备上的GPS信息,基站信息,Wifi信息等与当前位置修改的信息,用来判断用户所处的具体位置,位置信息用经纬度表示。
定位服务是地理位置服务的基础。Android提供了多种定位手段。
定位服务框架
Android的位置信息,是通过不同的位置信息源来提供的,表示位置信息源的对象派生自LocationProvider。通过硬件收集信息,转换成位置信息。
Android的位置信息服务LocationProviderService,用来管理所有的位置信息源,并通过这些信息源向请求者提供当前的位置信息。位置信息服务运行在系统核心进程的独立线程中,在服务初始化时,根据配置信息实例化系统中预设的定位信息源对象。
调用组件可以使用LocationManager获取当前的位置信息,LocationManager.getLastKnownLocation获取最近一次系统进行定位保存的信息。如果需要获取最新的位置信息,则要请求更新并监听当前位置信息的变化LOcationListener。
更新并监听当前位置信息的变化一般在Activity.onResume进行。注销监听在Activity.onPause进行。
位置信息变更事件的注册需要调用LocationManager.requestLocationUpdates函数。
位置信息源
定位服务依托于多个不同的位置信息源,每个位置信息源对象都在独立的线程中运行。与位置服务通过Socket通信,并传递位置信息。
最基本的位置信息源,是依托GPS信息来确定设备的位置。GSP的获取需要底层设备的支持,但受硬件约束和抗干扰差。因此Android提供了另一种定位服务。
基于网络的定位服务。定位信息源对象会手机移动设备周边WIfi和基站信息,并通过网络发送至Google的定位服务。Google服务根据收集来的海量Wifi地址,基站地址和经纬度关系计算出当前的位置信息并返回用户。
定位的选择
选择位置信息源进行定位的依据是依照预设的标准,从众多定位信息源选择一个最好的提供定位。
利用LocationManager.getBestProvider得到name,再用LocationManager.getProvide(name)得到LocationProvider。
另一种方式是动态定位
更多相关文章
- 小编程(三):用户登录注册界面开发及用户信息管理案例代码详解
- 【原创】Android 耗电信息统计服务——BatteryStats源码分析(一)
- androidの获取android手机信息
- LocationManager 的requestLocationUpdates用于本地信息更新
- javascript获取Android设备版本信息(备忘)
- android获取手机已经安装的app信息
- android GPS 获取位置
- 00015-相对布局位置属性