После вызова setMyLocationEnabled(true)
на GoogleMap я вижу синюю точку, указывающую текущее местоположение пользователя. Если я отключу GPS и включу режим полета, эта синяя точка будет видна на карте 1-2 минуты, после чего исчезнет (и, естественно, перестанет работать кнопка «Мое местоположение»).
Я ожидал, что смогу выяснить, когда точка исчезла, посмотрев onConnectionSuspended(int cause)
, который я указал при создании GoogleApiClient
, как описано в документации FusedLocationProviderApi:
new GoogleApiClient.Builder(context)
.addApi(LocationServices.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build()
Однако этот обратный вызов, похоже, не вызывается, когда я отключаю все компоненты определения местоположения на своем телефоне (что приводит к исчезновению синей точки). Есть ли другой обратный вызов, который я должен использовать для получения этой информации? Если нет, является ли развертывание пользовательской реализации LocationSource возможным/разумным способом гарантировать, что мой пользовательский интерфейс карты может оставаться синхронизированным с другим пользовательским интерфейсом, зависящим от местоположения, в остальной части моего приложения?