如何在Android上获取当前位置

时间:2011-03-16 20:31:40

标签: android geolocation locationmanager

嘿伙计们 我想获得用户位置的经纬度。 我已经尝试过开发人员站点和堆栈溢出,有很多针对移动用户的示例,它们使用了以下内容: 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。

由于

1 个答案:

答案 0 :(得分:3)

注册位置更新,一旦收到第一次更新,您可以取消注册以备将来更新。

换句话说,创建一个LocationListener并使用LocationManager的{​​{1}}方法进行注册。在requestLocationUpdates的{​​{1}}方法中,使用onLocationChanged作为参数调用LocationListener上的removeUpdates方法。

获得新位置可能需要一些时间,但除了使用LocationManager之外,其他方法并不存在。