参考:
http://blog.youkuaiyun.com/chenshijun0101/article/details/6644935
http://www.bkjia.com/Androidjc/1036538.html
http://blog.youkuaiyun.com/i_lovefish/article/details/7948215
http://blog.youkuaiyun.com/i_lovefish/article/details/7948215
http://blog.youkuaiyun.com/flowingflying/article/details/38733879
http://www.2cto.com/kf/201111/110230.html
LocationManager
可以用来获取当前的位置,追踪设备的移动路线,或设定敏感区域,在进入或离开敏感区域时设备会发出特定警报LocationManager定位管理者实例通过getSystemService()方式获得,传入参数Context.LOCATION_SERVICE
定位类型:
1 gps 卫星定位 1米之内 agps 5米之内 手机上面不能遮盖物。
2 wifi 定位 ip号 网段
3 基站定位 500 -1000米
network :wifi 基站
gps :gps agps
passvie: 无源定位 (综合所有的定位方式,得出最准确的结果)
android location provider有两个:
LocationManager.GPS_PROVIDER:GPS,精度比较高,但是慢而且消耗电力,而且可能因为天气原因或者障碍物而无法获取卫星信息,另外设备可能没有GPS模块;
LocationProvider gpsProvider = locationManager.getProvider(LocationManager.GPS_PROVIDER);
LocationManager.NETWORK_PROVIDER:通过网络获取定位信息,精度低,耗电少,获取信息速度较快,不依赖GPS模块。
LocationProvider netProvider = locationManager.getProvider(LocationManager.NETWORK_PROVIDER);
为了程序的通用性,希望动态选择location provider。可以使用Criteria,根据当前设备情况自动选择哪种location provider。
Criteria类
这个类表示了应用程序选择位置服务provider的一个标准,provider可能是根据精准度,电量使用,能否获得海拔,速度、方向和产生资费来选择的”也就是说,criteria给用户提供了多种因素的标准设置,locationManager可以根据这个设定好的标准,自动选择最慢组需求的provider。
获取方式:Criteria criteria = new Criteria();
常用方法:
void setAccuracy(int accuracy)
设置经纬度的精准度 可选参数有ACCURACY_FINE 准确ACCURACY_COARSE 粗略
void setAltitudeRequired(boolean altitudeRequired)
设置是否需要获取海拔数据
void setBearingAccuracy(int accuracy)
<