【问题标题】:getLastKnownLocation() always return the same location, even after device is movedgetLastKnownLocation() 始终返回相同的位置,即使在设备移动后也是如此
【发布时间】:2012-10-13 23:20:14
【问题描述】:

我通过执行设置我的位置管理器

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

然后我调用在我的应用程序上有一个更新按钮,以便当按下它时,我将调用执行以下行

Location loc = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER)

但是,我得到的位置总是一样的,即使我拿着设备直走 20 米然后等待 10 分钟!

请问我是否遗漏了什么?

谢谢!

【问题讨论】:

标签: android google-maps google-maps-api-3 location


【解决方案1】:

getLastKnownLocation() 方法返回上次获取的 GPS 位置。如果您不启动 GPS 位置获取以使其获取新位置,则此方法返回的值将始终是相同的旧值。

您需要:

  • 注册位置更新lm.requestLocationUpdates()
  • 定义您的 onLocationChange() 侦听器以接收新位置
  • AndroidManifest.xml文件中添加权限android.permission.ACCESS_FINE_LOCATION
  • 在手机设置中启用 GPS 使用

问候

【讨论】:

  • 非常感谢。我改用 lm.requestSingleUpdate,因为我只希望它执行一次
  • 你好,我被困在了位置,在这种情况下,位置管理器每次都返回相同的位置,我已经做了你上面提到的所有事情。但我仍然在 gps 跟踪器中获得相同的位置
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-02
  • 2023-03-06
  • 2014-07-10
相关资源
最近更新 更多