Я разрабатываю приложение для Android; это приложение должно периодически отправлять (каждые 10 минут) текущую позицию (координаты) в веб-службу. Но ... Я немного смущен более правильным способом (и более дружелюбным к батарее устройства), чтобы сделать это.Периодически получайте местоположение (координаты) без увеличения расхода батареи
Я прочитал это answer и ее метод _getLocation()
выглядит хорошо; но я не знаю, сможет ли этот метод получить доступное мне место; общая доступность ...
Я хотел бы, если это место недоступно с использованием GSM/WIFI, приложение выбирает метод GPS.
Это то, что делает этот метод?
private void _getLocation() {
// Get the location manager
LocationManager locationManager = (LocationManager)
getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
String bestProvider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(bestProvider);
try {
lat = location.getLatitude();
lon = location.getLongitude();
} catch (NullPointerException e) {
lat = -1.0;
lon = -1.0;
}
}
Кто-нибудь знает, как можно периодически получать координаты устройства ... без значительного увеличения потребления батареи?
Если вы беспокоитесь о потреблении батареи и так беспокоятся о том, чтобы ваше местоположение обновляется немного поздно, вы должны проверить PassiveProvider. Он совместим с другими приложениями, использующими службы определения местоположения. –
Прежде всего; Спасибо за ваш комментарий. И да, я так беспокоюсь об этом. Можете ли вы дать мне пример для «Пассивного Провайдера»? – tomloprod
см. Мой ответ ниже. –