在项目当中经常需要获取当前所在的地理位置信息,但只是单个地位,并不需要地图、周边检索、路线等其他额外的功能,
所以我们如果引入第三方sdk就感觉很笨重,并且有些得不尝试。
在Android系统中已经为我们提供了简单的获取经纬度的方法,并且也提供了根据经纬度逆地理编码获取当前地理位置信息方法。
- Android提供了三种获取经纬度的方式
a: 通过网络定位, 获取方式:LocationManager.NETWORK_PROVIDER 优点:获取精度比较高, 缺点:仅能在户外使用,获取定位信息速度慢,并且耗电高 b: 通过GPS定位 获取方式:LocationManager.GPS_PROVIDER 优点:能在户外户内使用,定位速度快,并且耗电低, 缺点:精确度不高 c: 通过passive定位,非初始化获取位置信息,只用于特定的情景下被动接收位置信息变化,一般不用 获取方式:LocationManager.PASSIVE_PROVIDER
- 实例代码:
代码示例:
Geocoder在获取位置信息的时候会阻塞主线程,我们在使用的时候,尽量在异步任务中处理位置信息
在Geocoder中提供了三个方法获取List<Address>位置信息,注意我们获取到的是集合对象
根据经纬度获取,我们调用getFromLocation方法,如下