Вот фрагменты моего кода:
private class NoGpsLock implements Runnable {
public void run() {
if (gps == null) {
Toast toast = Toast.makeText(getApplicationContext(), "Unable to find GPS lock", Toast.LENGTH_LONG);
toast.show();
if (locManager != null) {
locManager.removeUpdates(locListener);
}
}
}
}
Вызывается
try {
locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_TIME, MIN_DIST, locListener);
} catch (Exception ex) {
}
Handler gpsHandler = new Handler();
gpsHandler.postDelayed(new NoGpsLock(), 15000); //15seconds
Насколько я понимаю, removeUpdates()
должен прекратить получать обновления GPS.Я пробовал это на эмуляторе и на 2 устройствах;в эмуляторе он не дает приложению получать дальнейшие изменения местоположения.Однако на реальных устройствах значок «Получение данных о местоположении от GPS» продолжает появляться и разряжает аккумулятор (что, как я полагаю, указывает на то, что приложение / телефон продолжает искать местоположение и не может, поскольку я в помещении),Как мне остановить GPS от попыток найти местоположение?
РЕДАКТИРОВАТЬ: я хочу, чтобы мое приложение прекратило попытки найти местоположение через некоторое время, а затем, возможно, перезапустите GPS позже.