GPS ищет слишком долго

У меня есть приложение, которое использует GPS.

Моя проблема в том, что когда я дохожу до того места, где GPS ищет сигнал и не может его найти, он просто продолжает поиск. Это убивает аккумулятор.

Я использовал это:

this.locationManager.requestLocationUpdates(this.provider, 0,
                                            0, pendingIntent);

но он устанавливает только частоту обновления. Если GPS не заблокирован, он продолжает попытки.

Я хочу, чтобы он остановился через несколько минут после попытки получить блокировку.

Что я могу сделать?


person roiberg    schedule 30.05.2012    source источник
comment
попробуйте изменить второй аргумент с 0 на что-то большее.. 0 говорит менеджеру местоположения постоянно проверять статус GPS   -  person Gryphius    schedule 30.05.2012
comment
а где ты пытаешься? в эмуляторе? в офисе ? оба эти места не будут возвращать значение GPS, вы должны попробовать это на устройстве с открытым полем неба.   -  person Lucifer    schedule 30.05.2012
comment
Locifer - я хочу исправить проблему, когда он не может получить GPS. Я хочу, чтобы он перестал искать сигнал, если он не может его найти. Грифиус – Все было так, как ты говорил раньше. тем не менее, если у него есть блокировка, он обновляется в соответствии с этой строкой кода, если он не может заблокировать, он будет пытаться навсегда.   -  person roiberg    schedule 30.05.2012
comment
если вы установите его достаточно высоким, он должен в конце концов остановиться, помните, что значение указано в миллисекундах, попробуйте установить его на 300 000, iirc GPS будет пытаться получить блокировку в течение примерно минуты, затем остановится, затем повторите попытку через 5 минут. позже   -  person Gryphius    schedule 30.05.2012
comment
не могли бы вы объяснить? насколько я понимаю, он указывает только временные интервалы между блокировками, а не то, сколько времени он может пытаться заблокировать.   -  person roiberg    schedule 30.05.2012


Ответы (1)


Если вы не хотите часто проверять новое местоположение, вы должны указать минимальное время и минимальное расстояние. структура такая:

 public void requestLocationUpdates (String provider, long minTime, float minDistance, PendingIntent intent)

для получения дополнительной информации перейдите по этой ссылке: http://developer.android.com/reference/android/location/LocationManager.html#requestLocationUpdates%28java.lang.String,%20long,%20float,%20android.app.PendingIntent%29

Изменить: извините, я не понял вашего вопроса. проверьте эту ссылку, что вам нужно сделать, это установить тайм-аут. Надеюсь, это поможет. Как сократить время приема сигнала GPS

person 113408    schedule 30.05.2012
comment
Опять же, я не говорю о частоте проверки местоположения, я говорю о времени, которое каждый раз тратится на поиск GPS. Я не хочу, чтобы он каждый раз искал больше пяти минут. спасибо за ваш ответ в любом случае. - person roiberg; 30.05.2012