繁体   English   中英

Android:如何检查位置是当前位置还是最近的已知位置

[英]Android: how to check the location is current location or last known location

在我的应用程序中,我从网络获取位置,如果网络不可用,我的代码将返回最后一个位置,在两种情况下,我都想知道该位置是当前位置还是最后一个已知位置。 有人可以告诉我如何知道这一点。谢谢

 public Location getLocation() {
    try {
        locationManager = (LocationManager)mContext.getSystemService(LOCATION_SERVICE);
        // getting network status
        isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

        if (isNetworkEnabled) {
                locationManager.requestLocationUpdates(
                        LocationManager.NETWORK_PROVIDER,
                        MIN_TIME_BW_UPDATES,
                        MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                if (locationManager != null) {
                    location = locationManager
                            .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                    if (location != null) {
                        latitude = location.getLatitude();
                        longitude = location.getLongitude();
                    }
                }
            }

           else{ }   

    } catch (Exception e) {
        e.printStackTrace();
    }

    return location;
}

public double getLatitude(){
    if(location != null){
        latitude = location.getLatitude();
    }      
    return latitude;
}

public double getLongitude(){
    if(location != null){
        longitude = location.getLongitude();
    }
      return longitude;
}

您需要使用SharedPrefences实现

将当前位置(纬度和经度最多存储5个小数位)存储在共享首选项中。将新位置与共享首选项中的位置进行比较。如果相同,则新位置是您最后一次知道的位置,如果不是新位置是新的,再次保存在您的共享首选项中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM