【问题标题】:How to get current location on android如何在android上获取当前位置
【发布时间】:2011-03-16 20:31:40
【问题描述】:

大家好 我想获取用户位置的纬度和经度。 我已经尝试过开发人员站点和堆栈溢出,有很多针对移动用户的示例,它们使用以下内容:- onLocationChanged() 我不需要更新位置,用户只需打开一两分钟 所以我需要找到应用程序启动时的位置,如果用户之前从未使用过任何地理定位应用程序怎么办,因此我也想要一个替代方案 LocationManager.getLastKnownLocation()

我的代码是:-

LocationManager lm = (LocationManager)
        getSystemService(Context.LOCATION_SERVICE);
        // connect to the GPS location service
        Location loc = lm.getLastKnownLocation(lm.NETWORK_PROVIDER);
        Toast.makeText(currentLocation.this, "Latitude -> "+Double.toString(loc.getLatitude())
                +" Longitude is -> "+Double.toString(loc.getLongitude()), Toast.LENGTH_LONG).show();

并且工作正常。 但我担心第一次使用 getLastKnownLocation 可能会返回 null。

谢谢

【问题讨论】:

  • 您已经提出了 9 个问题,但从未接受过答案。接受您之前问题的正确答案,更多用户会关注您的新问题。

标签: android geolocation locationmanager


【解决方案1】:

注册位置更新,一旦您收到第一个更新,您可以取消注册以获取未来的更新。

换句话说,创建一个LocationListener 并使用您的LocationManagerrequestLocationUpdates 方法注册它。在LocationListeneronLocationChanged方法中,调用LocationManager上的removeUpdates方法,以this为参数。

您可能需要一些时间才能获得新位置,但除了使用 getLastKnownLocation 之外,没有其他选择。

【讨论】:

  • 感谢您的回复。但是 requestLocationUpdates 有 4 个参数,第三个参数是回调发生的最小距离,我很困惑我应该在那里输入 null 吗?因为可能是用户没有移动......
  • 传递 0 作为 minDistance 将确保每次收到新位置时都会调用该方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-15
  • 1970-01-01
  • 2021-02-05
  • 1970-01-01
相关资源
最近更新 更多