【问题标题】:Android's meaning of turning location on/offAndroid开启/关闭定位的意义
【发布时间】:2015-08-01 15:44:00
【问题描述】:

我正在使用 Google Play 服务来获取用户的当前位置。基本上我使用http://www.androidhive.info/2015/02/android-location-api-using-google-play-services/ 的代码来获取位置。所以这就是我的问题:

1) 我可以毫无问题地在我的 Xperia Mini(运行 ICS)上获取当前用户位置。如果我没有启用 GPS,我会收到(预期)的位置不是那么准确,但我仍然会得到它。如果我启用 GPS,我将(再次,预期)接收到更准确的位置。

2) 但是当我尝试在 Zenfone C (Running KitKat) 上运行我的应用程序时,如果我没有启用定位,我将永远无法获得任何定位。 getLastLocation 和 onLocationChanged 将始终返回 null。只有在我启用位置后,我才能获得位置。但是在我禁用位置并再次尝试 getLastLocation 后,它会再次返回 null。

我的 Zenfone C 上出现的情况让我很困惑,因为据我了解,即使我们没有启用位置/GPS,我们仍然可以从移动网络或 wifi 三角测量中获取当前位置,因为那是我的 Xperia Mini 发生了什么,我认为这应该是所有 Android 设备的标准?或者某些Android设备上的启用位置开/关有其他含义吗?也许在某些设备上,当位置关闭时,我们无法获取位置。这里有人可以解释一下吗?

谢谢

【问题讨论】:

  • 定位模式开启时有多种子模式。 UI 在不同的 Android 版本中有所不同。看看这个答案中的截图:stackoverflow.com/a/30580898您是否完全关闭了定位模式,或者您是否在仍有有效位置时禁用了 GPS?
  • 嗯,现在无法检查,因为手机目前不在我身边。但是,我假设大多数用户只会使用通知栏上显示的位置切换开关,而不会详细了解实际打开/关闭的内容。假设是这种情况,如果他/她禁用了她的位置,似乎没有万无一失/确定的方法可以在某些手机型号上获得用户的大致位置?
  • 定位模式设置为关闭后,设备将无法获取新位置,但有可能在定位模式设置为开启时,一台设备已缓存位置。跨度>
  • @DanielNugent 我想即使关闭 GPS,只要用户仍然打开互联网(移动数据或 wifi),我们应该能够正确获取他/她的位置?
  • 不,需要启用网络位置才能从移动数据或 wifi 获取位置。请注意,如果您使用切换按钮,它会启用/禁用网络位置和 GPS。您可以使用子模式仅启用一个

标签: android gps


【解决方案1】:

一旦位置模式设置为关闭,设备就无法获取新位置,但有可能一个设备在位置模式设置为打开时缓存了位置。

需要启用网络位置(某些 Android 版本上的省电模式)才能从移动数据或 WiFi 中获取位置。请注意,如果您使用切换按钮,它会启用/禁用网络位置和 GPS(高精度模式)。您可以使用子模式仅启用一种定位模式(仅限网络省电,或仅限 GPS)。

欲了解更多信息,请查看this answer 中的屏幕截图。

【讨论】:

  • 当移动数据和wifi都打开时,获取位置的优先级是什么?
  • @Mighty 它将使用所有可用的数据。它可以从蜂窝塔三角测量中获得粗略的位置数据,但通过分析范围内的 WiFi 热点可以获得更好的结果。这就是为什么您实际上可以从 WiFi 中获取非常精确的位置数据,也是为什么您现在需要提示位置权限以便您的应用查看任何 WiFi 扫描结果。
  • 感谢您的回复。我想更深入地了解位置服务的方式。你能告诉我(重定向)我在哪里可以获得这些信息吗?。
猜你喜欢
  • 2017-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2014-05-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多