Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何获得更精确的gps定位?_Android_Listview_History - Fatal编程技术网

Android 如何获得更精确的gps定位?

Android 如何获得更精确的gps定位?,android,listview,history,Android,Listview,History,我有一个应用程序,可以获取用户的gps位置。现在的问题是它有点不准确(它显示我在20-60米外的另一栋楼里) 这是我的密码 LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_F

我有一个应用程序,可以获取用户的gps位置。现在的问题是它有点不准确(它显示我在20-60米外的另一栋楼里)

这是我的密码

LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
            Criteria criteria = new Criteria();
            criteria.setAccuracy(Criteria.ACCURACY_FINE);
            String bestProvider = locationManager.getBestProvider(criteria,
                    false);
            LocationListener loc_listener = new LocationListener() {

                @Override
                public void onStatusChanged(String provider, int status,
                        Bundle extras) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void onProviderEnabled(String provider) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void onProviderDisabled(String provider) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void onLocationChanged(Location location) {
                    // TODO Auto-generated method stub

                }
            };
            try {
                Looper.prepare();
                locationManager.requestLocationUpdates(bestProvider, 0, 0,
                        loc_listener);
            } catch (Exception e) {
                e.printStackTrace();
            }
            Location location = locationManager
                    .getLastKnownLocation(bestProvider);

我认为我应该在发送location.getLatitude()和location.getLatitude()之前至少等待一秒钟。现在,等待时间几乎是瞬间的,但精确度非常差。我正在使用我的

GPS芯片提供的每个位置更新都会有一个精度值。你应该考虑扔掉超过阈值的东西。


然而,室内GPS很难获得信号,因此,如果它甚至设法获得一个锁,精度将下降

这有一个计算提供的最佳修复的示例:您可以从其
Location.getAccuracy()
函数返回返回的位置对象的精度。