Android OnLocation更改了无效的GPS位置

Android OnLocation更改了无效的GPS位置,android,gps,Android,Gps,有时我从GPS接收到无效/错误的位置。我说的不是米,而是几公里。有时超过300公里。我搜索了很多,仍然没有找到解决方案 以下是今晚的一个例子: 09-13 21:33:29.788 V/测试﹕ onLocationChanged GPS 21:33:28 2014年9月13日,XX.603674,XX.154188,20.0 09-13 21:33:31.338 V/测试﹕ 在线更改GPS 21:33:30 2014年9月13日,XX.603633,XX.154111,20.0 09-13 21

有时我从GPS接收到无效/错误的位置。我说的不是米,而是几公里。有时超过300公里。我搜索了很多,仍然没有找到解决方案

以下是今晚的一个例子:

09-13 21:33:29.788 V/测试﹕ onLocationChanged GPS 21:33:28 2014年9月13日,XX.603674,XX.154188,20.0 09-13 21:33:31.338 V/测试﹕ 在线更改GPS 21:33:30 2014年9月13日,XX.603633,XX.154111,20.0 09-13 21:35:24.061 V/测试﹕ onLocationChanged GPS 21:35:25 2014年9月13日,XX.567266,XX.031885,10.0 09-13 21:36:16.226 V/测试﹕ onLocationChanged GPS 21:36:17 2014年9月13日,XX.603408,XX.153793,20.0

不远,这次大约12公里。但有时是非常非常遥远的。我的设备是三星GT-I9100(4.1.2)

这是代码(我不测试location.hasAccurance,因为在这种情况下没有差异):


我做错了什么吗???

这些不正确的值出现的频率有多高?众所周知,GPS偶尔会返回不正确的值。(虽然几百公里的距离是很可疑的)你必须在户外才能让GPS正常工作。如果你要测试GPS功能,就用笔记本电脑在室外测试GPS。是的,我同意,有时它是不稳定的,有时我可以看到它从一个地方反弹到另一个地方,但我认为这是因为它锁定在我的GPS上,使用wifi/手机发射塔,然后如果GPS可用。我不在乎错误的位置。但我需要知道这有多不对。艾拉德,总是在晚上和室内出现。这是我最糟糕的GPS星座情况。我知道在这种情况下我可能会得到错误的位置。问题是:如果准确度为10米、20米或30米,位置距离为300公里,如何知道它是否是错误的位置?我正在开发一个跟踪应用程序,我不能向我的客户显示一个错误的位置300公里,并说精度/误差是20米!
        LocationListener gpsLocationListener = new LocationListener() {
        @Override
        public void onLocationChanged(Location location) {

            if (location == null) return;
            Log.v(TAG, "onLocationChanged GPS " + getCurrentTime(location.getTime(), false) + ", " +
                    String.format("%.6f", location.getLatitude()) + ", " + String.format("%.6f", location.getLongitude()) + ", " + String.format("%.1f", location.getAccuracy()));

        }
        public void onStatusChanged(String provider, int status, Bundle extras) {}
        public void onProviderEnabled(String provider) {}
        public void onProviderDisabled(String provider) {}
    };

    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 30, 5, gpsLocationListener);