Я разрабатываю приложение, которое использует gps, который работает до тех пор, пока приложение не будет работать. Мой GPS просыпается через 5 минут и получает местоположение, после чего его символ перестает мигать и становится невидимым почти во всех устройствах (Sony xperia, вкладка Samsung, Htc WildFire, Motorola photon), но не в Motorola Defy и Samsung Ace, которые потребляют огромную энергию аккумулятора , GPS получает исправление и становится стабильным и видимым все время. Способ работы GPS этих устройств (Moto Defy и Samsung Ace) отличается. Посмотрите на мой код:GPS работает все время даже после получения местоположения
long _listenerWakeUpTimeInterval=1000*60*5;** //5 minutes
_locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, _listenerWakeUpTimeInterval, 300, locationListener);
В GPS всех устройств просыпаются через 5 минут, но GPS из этих двух устройств (Moto Defy и Samsung Ace) вызывает метод onLocationChanged(Location loc)
каждые 300 метров. Время имеет значение не для этих двух устройств. Когда я путешествую быстро (в автомобиле), это расстояние покрывается за несколько минут (1 или 2 минуты). Поэтому я получаю звонок по методу onLocationChanged(Location loc)
. И в этих устройствах GPS всегда фиксирован, статичен и видим. Я не хочу называть методы locationManager.removesupdates
каждый раз, когда GPS получает исправление. Я использую этот метод только в onDestroy()
службы. Поэтому, пожалуйста, скажите, почему GPS этих двух устройств ведет себя иначе, чем другие устройства, и как решить эту проблему?