Я работаю над приложением, которое использует Карты Google и отслеживает местоположение пользователя. Я хочу изменить видимость "Вы здесь!" маркер, когда пользователь закрывает службы определения местоположения вручную или службы переходят в состояние недоступности. Этот метод может возвращать информацию о том, включены ли службы определения местоположения или нет:
private boolean isLocationServicesEnabled() {
LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE);
if (lm.isProviderEnabled(LocationManager.GPS_PROVIDER) || lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
return true;
}
return false;
}
Однако я не хочу за один раз определять статус служб определения местоположения. Всякий раз, когда пользователь открывает или закрывает службы определения местоположения, я должен обнаружить это и изменить видимость маркера. Короче говоря, этот небрежный псевдокод объясняет то, что я хочу услышать:
while application runs
if location services turn off
change marker visibility to false
else
change marker visibility to true
Я не нашел способ выполнить эту задачу без android.location.LocationListener, хочу добиться этого, просто используя Fused Location Provider. Есть ли у вас какие-либо идеи? Вот основная структура, которую я использовал, если вы хотите увидеть:
http://www.androidhive.info/2015/02/android-location-api-using-google-play-services/ (проверьте заголовок «Полный код»)