在安卓开发中有是需要记录用户位置用作用大数据分析,这些统计仅仅需要经纬度以及城市信息,不需要其他的信息,如果接入第三方定位sdk就会显得大材小用,使得程序的整个功能架构显得有些冗余,在不接入第三方定位SDK的前提下可以使用安卓原生的定位API(LocationManager,Geocoder),通过LocationManager可以直接获取到经纬度,然后通过Geocoder可以将经纬度转换为具体的城市信息。
LocationManager具体用法
1.LocationManager实例化
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
2.位置获取方式选择
List<String> providerList = locationManager.getProviders(true);
if (providerList .contains(LocationManager.GPS_PROVIDER)) {
//GPRS
locationProvider = LocationManager.GPS_PROVIDER;
} else if (providerList .contains(LocationManager.NETWORK_PROVIDER)) {
//wifi跟数据流量
locationProvider = LocationManager.NETWORK_PROVIDER;
} else {
//表明没有打开GPRS定位或者没有开启wifi或者数据,或者没有相关权限
return;
Log.i(TAG, "无法获取该设备可用的定位工具");
}
3.位置监听器
locationManager.requestLocationUpdates(locationProvider, 1000,