Android getLastKnownLocation可以';无法通过location.setLatitude/setLatitude获取新数据?

Android getLastKnownLocation可以';无法通过location.setLatitude/setLatitude获取新数据?,android,geolocation,location,Android,Geolocation,Location,我的完整代码 在110~131行中,我想更改位置,它确实有效,地图视图将更改 private class MapClickedListener implements OnClickListener { @Override public void onClick (View v) { String lng = "121.558561"; lng = edt_lng.getText().toString().trim(); Stri

我的完整代码

在110~131行中,我想更改位置,它确实有效,地图视图将更改

private class MapClickedListener implements OnClickListener {

    @Override
    public void onClick (View v) {
        String lng = "121.558561";
        lng = edt_lng.getText().toString().trim();
        String lat = "25.031005";
        lat = edt_lat.getText().toString().trim();
        if(lng.equals("")||lat.equals("")){
            Toast.makeText(getApplicationContext(), "input again!", Toast.LENGTH_LONG).show();
            location = locManager.getLastKnownLocation(bestProvider);
            updateToNewLocation(location);
        }else{
            Location location = new Location(LocationManager.NETWORK_PROVIDER);
            location.setLongitude(Double.parseDouble(lng));
            location.setLatitude(Double.parseDouble(lat));
            updateToNewLocation(location);
        }

    }

}
在第133~148行,我想知道位置和我设置的点之间的距离

private Button.OnClickListener EQ = new Button.OnClickListener(){   
    @Override
    public void onClick (View v) {
        eqlocation.setLongitude(120.82);
        eqlocation.setLatitude(23.85);
        location = locManager.getLastKnownLocation(bestProvider);
        float[] result = new float[5];
        Location.distanceBetween(location.getLatitude(), location.getLongitude(), eqlocation.getLatitude(), eqlocation.getLongitude(), result);
        BigDecimal bd = new BigDecimal(result[0]);
        BigDecimal rounded = bd.setScale(2, RoundingMode.HALF_UP);
        double dis = rounded.doubleValue();
        String dist = String.valueOf(dis/1000);
        Toast.makeText(getApplicationContext(), "distance: " + dist + "km", Toast.LENGTH_LONG).show();
    }

};
但是当我通过第110~131行的代码更改位置时,结果是错误的。
我应该怎么做才能得到正确的结果?

您是否尝试过distanceTo()并检查是否获得了更好的结果?我通常使用distanceTo()获得良好的结果