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

Что действительно делает map.setMyLocationEnabled(true)

Я устанавливаю:

map.setMyLocationEnabled(true)

Но мне интересно, что это на самом деле. Что я знаю:

  • Я получаю кнопку "Найти меня" в правом верхнем углу карты.
  • Я получаю синий значок на карте, который представляет мое текущее местоположение.

Вот моя забота. Я пишу приложение, ориентированное на местоположение, но меня беспокоит аккумулятор. В другом месте моего приложения (через настройки) я настроил LocationManager и прослушивал события местоположения, чтобы я мог их зарегистрировать. Но часть моих предпочтений - это точность, с которой я получаю обновления и интервал.

Когда я отключу свой LocationManager:

locationManange.removeUpdates(LocationListener listener);

Я ожидаю отключить службы определения местоположения для всего приложения. Тем не менее, я все еще вижу маленький значок GPS в панели заголовков телефонов, указывающий, что приложение получает обновления местоположения. Я знаю, что это происходит из-за того, что я установил это на моем карте:

map.setMyLocationEnabled(true);

Первоначально я думал, что если вы не прослушали обновления местоположения, настроив LocationManager, который установил map.setMyLocationEnabled(true), не имел бы никакого эффекта (т.е. ни одного значка местоположения или кнопки). Однако это не так.

Означает ли это, что, вызывая map.setMyLocationEnabled(true), Google настраивает свой собственный LocationManager со своими собственными настройками? Мне бы очень хотелось называть map.setMyLocationEnabled(true), но использовать мои настройки для обновлений местоположения, а не то, что делает Google под капотом. Это возможно? Я что-то пропустил в документах? Я не могу найти ничего о точности или интервале, который устанавливается в LocationManager при вызове map.setMyLocationEnabled(true).

4b9b3361

Ответ 1

Означает ли это, что, вызывая map.setMyLocationEnabled(true), Google настраивает свой собственный LocationManager со своими настройками?

Не совсем. Карты V2 по умолчанию используют LocationClient.

Мне бы очень хотелось называть map.setMyLocationEnabled(true), но он использует мои настройки для обновлений местоположения, а не то, что Google делает под капотом. Возможно ли это?

Вы можете использовать setLocationSource() для предоставления своих собственных данных местоположения для использования с уровнем моего местоположения. Вот пример проекта, демонстрирующий это.