1.LocationManager的基本用法:
a) 获取LocationManager:
LocationManager locationManager=(LocationManager) getSystemService(Context.LOCATION_SERVICE);
b) 选择一个位置提供器来确定当前的位置:
i. 三种位置提供器:
1. GPS_PROVIDER:GPS定位(精准但耗电)
2. NETWORK_PROVIDER:网络定位(精度差但省电)
3. PASSIVE_PROVIDER:被动定位
ii. 获取provider:
String provider=LocationManager.NETWORK_PROVIDER;
c) 获得Location对象:location对象里面包含了经纬度、海拔等一系列信息
Location location=locationManager.getLastKnownLocation(provider);
d) 如果不确定此时GPS定位是否可用,可以先判断出此时设备有哪些可以用的定位提供器,再根据结果进行判断:
List<String> providers=locationManager.getProviders(true);
e) 通过LocationListener判断设备移动的时候,获取得到此时最新的位置:
locationManager.requestLocationUpdates(provider(位置提供器), 5000(时间间隔ms), 1(距离间隔,米), listener(LocationListener的实例));
2.Geocoding API 的用法:
安卓本身提供了GeoCoder可以将经纬度值转换成看得懂的地理位置信息,但是由于自身有严重bug,后来谷歌提供了一套Geocoding API可以实现这个效果,并且稳定性比安卓自身要好。(目前由于google接口被禁,也无法使用)