获取纬度和经度的最后位置

时间:2011-05-11 11:59:23

标签: android

这是我的代码。

public class MyLocationListener implements LocationListener {

    @Override
    public void onLocationChanged(Location loc) {
        Location location = getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
        LastLocationLat = location.getLatitude();
        LastLocationLongi = location.getLongitude();

        LocationLat = loc.getLatitude();
        LocationLongi = loc.getLongitude();

        if(loc.hasSpeed()) {
            float mySpeed = loc.getSpeed();
            Toast.makeText(getApplicationContext(), ""+mySpeed, 2000).show();
        }
    }

    @Override
    public void onProviderDisabled(String provider) {
        Toast.makeText(getApplicationContext(), "Gps Disabled", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onProviderEnabled(String provider) {
        Toast.makeText(getApplicationContext(), "Gps Enabled", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        Toast.makeText(getApplicationContext(), "Gps onStatusChanged", Toast.LENGTH_SHORT).show();
    }
}

但我没有在这段代码中获得最后一个位置,我有相同的纬度和经度

2 个答案:

答案 0 :(得分:2)

您正在使用LocationManager.NETWORK_PROVIDER获取地点。您的代码暗示您想要GPS(“Gps禁用”)?在这种情况下,您应该使用LocationManager.GPS_PROVIDER

LocationManager.NETWORK_PROVIDER不是很准确(如果锁定到手机信号塔,则几百米),因此如果移动的距离小于100米,则可能无法检测到位置变化。

另一方面,GPS通常在室内或高层建筑之间不可用。 GPS也使用电源,所以不应该一直使用(当应用程序在后台时)。

了解Obtaining User Location,了解获取有关准确性与服务可用性的位置的最佳方法。

答案 1 :(得分:0)