避免在gps android中设备仍然稳定时获取多个位置

避免在gps android中设备仍然稳定时获取多个位置,android,Android,我使用简单的Listner类在onchage location中获取位置 但该设备是稳定的,然后gps在1000米范围内错误定位 MyLocationListener.java 请帮助我,我将在最近两个月内使用新的android,我将在GPS上工作。以这种方式过滤位置 public static final int MINIMUM_ACCURACY = 50; public static boolean isValidAndAccurateLocation(Location location)

我使用简单的Listner类在onchage location中获取位置 但该设备是稳定的,然后gps在1000米范围内错误定位

MyLocationListener.java


请帮助我,我将在最近两个月内使用新的android,我将在GPS上工作。

以这种方式过滤位置

public static final int MINIMUM_ACCURACY = 50;

public static boolean isValidAndAccurateLocation(Location location) {

    boolean validLocation = location != null
            && Math.abs(location.getLatitude()) <= 90
            && Math.abs(location.getLongitude()) <= 180;
    if (validLocation && location.hasAccuracy()
            && location.getAccuracy() <= MINIMUM_ACCURACY) {
        return true;
    } else {
        return false;
    }
}

请求位置更新时提供最小距离,无需手动计算距离。使用


其中,时间是以毫秒为单位的时间,距离是以米为单位的最小距离。有关完整解释,请参阅

不注册网络提供商,仅用户GPS提供商我只从GPS获取位置,但它在同一地点获取多个位置。是的,这可能是一种情况,这就是为什么位置也具有准确性。从GPS获取lat long的另一个问题。我使用服务更新花边,时间35000,距离10米,但经过一个小时后,gps服务自动停止,之后无法获得位置。请给出解决方案。如果您在中注册的位置侦听器的活动终止,或者您有未注册的位置侦听器,则会发生这种情况。
public static final int MINIMUM_ACCURACY = 50;

public static boolean isValidAndAccurateLocation(Location location) {

    boolean validLocation = location != null
            && Math.abs(location.getLatitude()) <= 90
            && Math.abs(location.getLongitude()) <= 180;
    if (validLocation && location.hasAccuracy()
            && location.getAccuracy() <= MINIMUM_ACCURACY) {
        return true;
    } else {
        return false;
    }
}
mLocationManger.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, time, distance,
this);