精确获取GPS位置

时间:2012-04-24 02:16:58

标签: android gps

`private void getLocation(){

        String context = Context.LOCATION_SERVICE;
        LocationManager locationManager = (LocationManager)getSystemService(context);
        Criteria criteria = new Criteria();
        criteria.setAccuracy(Criteria.ACCURACY_COARSE);
        criteria.setAltitudeRequired(false);
        criteria.setBearingRequired(false);
        criteria.setCostAllowed(true);
        criteria.setPowerRequirement(Criteria.POWER_LOW);

        String provider = locationManager.getBestProvider(criteria, true);
        Location location = locationManager.getLastKnownLocation(provider);
        updateWithNewLocation(location);

        locationManager.requestLocationUpdates(provider, 2000, 5, locationListener);

    }

    private final LocationListener locationListener=new LocationListener()
    {
        public void onLocationChanged(Location location)
        {
            updateWithNewLocation(location);
        }
        public void onProviderDisabled(String provider)
        {
            updateWithNewLocation(null);
        }
        public void onProviderEnabled(String provider)
        {

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

        }
    }`  

我获取上述位置的代码。但我申请的结果并不准确。我想准确地得到我的位置。还有其他办法吗?

1 个答案:

答案 0 :(得分:4)

获得准确的定位取决于信号是否可用。例如。如果gps信号存在与否。如果GPS不存在,手机使用wifi或服务提供商跟踪,这不太准确。因此,尝试使用谷歌地图并查看您的位置,如果您使用谷歌地图获得更准确的位置修复,那么您在代码中遗漏了一些内容。

我可以看到的一个错误是你正在使用ACCURACY_COARSE,尝试使用ACCURACY_FINE。此外,如果您还没有,则必须在清单中添加这些权限。