一致的GPS更新 - AlarmManager或requestLocationUpdates()?

时间:2014-01-30 17:21:15

标签: android gps

我需要每分钟获得GPS位置更新(电池寿命不是问题,因为设备将在车辆内充电)。这是一个公司交付应用程序,具有车辆跟踪功能,与Google地图结合使用,可以跟踪送货计划人员的行程等。

我已将AlarmManager和LocationManager.requestLocationUpdates()与监听器一起使用。后来看起来有点松懈,并且通过文档,它可能会或可能不会给位置。但我已经看到,即使minTime设置为1分钟且距离为0/1,我仍然只能看到每5分钟更新一次或两次。

    private void startGeoLocationSender()
{       
    LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    LocationListener locationListener = new GeoLocationListener(this);
    // MINIMUM TIME TO REQUEST , MIN DISTANCE TO REQUEST, LISTENER
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 
            AppSettings.COLLECTOR_PROC_1_MINS, 
            AppSettings.COLLECTOR_DISTANCE_1_M, locationListener);      
}

那么,是否值得我回到AlarmManager并强制手动更新以使其可靠?或者是否有另一种方法,在给定特定更新时间的情况下100%可靠?什么更符合我的要求?

PS。我非常清楚关于这个主题的其他'000个主题,但我从来没有见过这样一个好的邪恶的趋势。一些人发誓位置听众,其他人只发出警报管理员。

2 个答案:

答案 0 :(得分:1)

如果仅使用LocationListener,则无法确保在所需的间隔时间内接收更新。 我真的认为最好的选择是AlarmManager或带有LocationListener触发器的Scheluder服务。

答案 1 :(得分:1)

我不确定更好的方法,所以我建议使用AlarmManager。