map.setMyLocationEnabled(true)确实做了什么

los*_*ion 24 android google-maps geolocation google-maps-android-api-2

我正在设置:

map.setMyLocationEnabled(true)
Run Code Online (Sandbox Code Playgroud)

但我想知道这到底是做什么的.我知道的:

  1. 我在地图的右上角找到了一个找到我的按钮
  2. 我在地图上看到一个代表我当前位置的蓝色图标

这是我的担忧.我正在写一个位置感知的应用程序,但我担心电池.在我的应用程序的其他地方(通过首选项)我设置了一个LocationManager并监听位置事件,以便我可以记录它们.但我偏好的部分原因是我获得更新的准确性和间隔.

当我关闭我的LocationManager时:

locationManange.removeUpdates(LocationListener listener);
Run Code Online (Sandbox Code Playgroud)

我希望关闭整个应用程序的位置服务.然而,我仍然在手机标题栏中看到小GPS图标,表明该应用正在获取位置更新.我知道这是因为我在地图视图上设置了这个:

map.setMyLocationEnabled(true);
Run Code Online (Sandbox Code Playgroud)

我原本以为如果你没有通过设置一个设置map.setMyLocationEnabled(true)的LocationManager来监听位置更新就没有效果(即没有我的位置图标或按钮).然而,事实并非如此.

这是否意味着通过调用map.setMyLocationEnabled(true)google正在设置自己的LocationManager并使用自己的设置?我真的想调用map.setMyLocationEnabled(true),但让它使用我的设置进行位置更新,而不是google在幕后做的事情.那可能吗?我在文档中遗漏了什么吗?当我调用map.setMyLocationEnabled(true)时,我找不到有关LocationManager上设置的准确度或间隔的任何信息.

Com*_*are 13

这是否意味着通过调用map.setMyLocationEnabled(true)google正在设置自己的LocationManager并使用自己的设置?

不完全是.Maps V2 默认使用LocationClient.

我真的想调用map.setMyLocationEnabled(true),但让它使用我的设置进行位置更新,而不是google在幕后做的事情.那可能吗?

您可以使用setLocationSource()提供自己的位置数据以与my-location图层一起使用.这是一个示例项目.