我只需要有关 Android 上位置的粗略数据,因此获取它时主要考虑的是保持电池电量。我认为这段代码:
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10 * 60 * 1000, 1000, this);
这是正确的策略吗?还是最好检查一下,例如每 10 分钟检查一次新位置并禁用监听器,这似乎更接近 Google 网站上提出的代码,尽管对我来说不太合逻辑?
最佳答案
不要提及提供商名称,而是使用 criteria获得提供者。并且,使用标准来设置您的要求。
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
final String bestProvider = manager.getBestProvider(criteria, true);
最后,
locationManager.requestLocationUpdates(bestProvider, 0,1000, this);
或者,您可以在完成任务后立即请求单个位置更新或禁用监听器
关于java - Android LocationManager,粗略数据和电池消耗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19212414/