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

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

map.setMyLocationEnabled(true) 

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

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

Вот моя забота. Я пишу приложение, ориентированное на местоположение, но меня беспокоит аккумулятор. В другом месте моего приложения (через настройки) я настроил 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).

Solutions Collecting From Web of "Что действительно делает map.setMyLocationEnabled (true)"

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

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

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

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