2013-10-06 32 views
0

我只需要有关Android上位置的粗略数据,所以在获取它时主要考虑的是保持电池电量。我认为这个代码:Android地理位置管理器,粗略的数据和电池消耗

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
    locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10 * 60 * 1000, 1000, this); 

它是正确的战略?或者是更好地检查一下,比如每10分钟寻找一个新的位置并禁用监听器,这似乎更接近Google网站上提出的代码,尽管对我来说不太合逻辑?

回答

1

而不是提供提供者名称使用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); 

另外,您可以为单一位置更新或禁用监听器,只要你有任务

+0

OK完成请求,这是非常有用的,但它给了其他信息而不是我问过的问题 - 如果您始终需要数据,从不停用监听器会更好吗?还是每隔10分钟更换一次? –

+0

设备上的每个芯片都需要时间进行初始化。如果请求之间的差距很长'removeUpdates'绝对是个好主意 – minhaz

+0

我想我的问题并不完美,我编辑过(因此第一个参数现在是10 * 60 * 1000)。这样做还是禁用侦听器会更好? –