使用Criteria确定android location provider
android location provider有两个:
- LocationManager.GPS_PROVIDER:GPS,精度比较高,但是慢而且消耗电力,而且可能因为天气原因或者障碍物而无法获取卫星信息,另外设备可能没有GPS模块;
- LocationManager.NETWORK_PROVIDER:通过网络获取定位信息,精度低,耗电少,获取信息速度较快,不依赖GPS模块。
为了程序的通用性,希望动态选择location provider。对android通过Location API显示地址信息做了个别改动,可以看到使用了gps定位,精度较高:
这里使用到了Criteria,可根据当前设备情况自动选择哪种location provider。见:
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);//设置为最大精度
criteria.setAltitudeRequired(false);//不要求海拔信息
criteria.setBearingRequired(false);//不要求方位信息
criteria.setCostAllowed(true);//是否允许付费
criteria.setPowerRequirement(Criteria.POWER_LOW);//对电量的要求
location = locationManager
.getLastKnownLocation(locationManager.getBestProvider(criteria, true));
本文详细介绍了如何在Android中使用Criteria动态选择Location Provider,通过设置Criteria的参数来优化定位过程,实现GPS和网络定位的灵活切换,提升应用的用户体验。
937

被折叠的 条评论
为什么被折叠?



