Подтвердить что ты не робот

Услуги по проверке местоположения Android доступны с поддержкой игровых сервисов api

Вы можете определить, доступны ли какие-либо поставщики в LocationManager, но можно ли это сделать с помощью службы google play services api?

Когда ничего не включено, на самом деле "доступ к моему местоположению" отключен, все вызовы API (connect(), requestLocationUpdates()) преуспевают, но вы никогда не получите onLocationChanged().

Кажется глупым, чтобы использовать как LocationManager, так и LocationClient.

Я предполагаю, что мне нужен способ узнать, что onLocationChanged (0 никогда не будет вызван.

4b9b3361

Ответ 1

Я расчесывал документы, а также не нашел способ использовать LocationClient, чтобы определить, включены ли службы определения местоположения. onConnected, onDisconnected и onConnectionFailed, похоже, не связаны с включенными службами определения местоположения.

В настоящее время я выполняю запросы местоположения, используя LocationClient, но используя старый метод locationManager.isProviderEnabled(String provider), чтобы определить, включены ли службы определения местоположения. Это оптимально для меня, так как даже если LocationClient действительно предоставил способ, он не делает различий между GPS и сетью, и мне бы очень хотелось, чтобы я мог попросить пользователя включить GPS.

if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { 
    //GPS Provider disabled
    return false;
}

Ответ 2

Теперь существует надежный способ определить, доступны ли обновления местоположения, поскольку Google Play Services 7.3.0:

Внесите и зарегистрируйте LocationCallback и переопределите onLocationAvailability() или вызовите LocationServices.FusedLocationApi.getLocationAvailability(), чтобы получить статус доступности. Если он ошибочен, то вы знаете, что обновления местоположения не будут доставлены, если что-то не изменится в конфигурации устройства.

Этот метод на самом деле довольно умный: например, он может определить, что обновления местоположения не будут доставлены на устройстве WiFi, если WiFi отключен или устройство находится в режиме самолёта, даже если поставщик сетевого местоположения всегда включен.

Ответ 3

Google Play Services 7.0 представил Settins Api, где вы можете запросить настройки местоположения, которые вам нужны, а затем запросить, если они включены, или попросить пользователя включить их.