为什么我的GPS总会在Android中返回非洲的位置?

时间:2014-06-18 01:18:58

标签: android gps

我正试图获取手机的当前位置,我不需要知道设备的最后位置。 以下代码获取我的手机的经纬度,但始终返回非洲的数据

的onCreate

 Double latitude, longitude
    LocationManager mLocation;
    String bestProvider;
    LocationListener mListener;
    mLocation = (LocationManager) getSystemService(LOCATION_SERVICE);
    mListener = new MyLocationListener();
    Criteria c = new Criteria();
    c.setAccuracy(Criteria.ACCURACY_COARSE);
    c.setAltitudeRequired(false);
    c.setBearingRequired(false);
    c.setCostAllowed(false);
    c.setPowerRequirement(Criteria.POWER_HIGH);
    bestProvider = mLocation.getBestProvider(c, true);
    mLocation.requestLocationUpdates(bestProvider, 0, 0, mListener);

内部班级

        class MyLocationListener implements LocationListener {

        @Override
        public void onLocationChanged(Location location) {

            latitude = location.getLongitude();
            longitude = location.getLatitude();

        }

        @Override
        public void onProviderDisabled(String provider) {


        }

        @Override
        public void onProviderEnabled(String provider) {


        }

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


        }
    }

此代码始终返回0.06434042.6465832,7。怎么回事?


我已经在许多设备上测试了我的应用程序并且发生了相同的

2 个答案:

答案 0 :(得分:1)

当您的gps点无效或纬度/经度点无效时,有时会发生这种情况。然后地图将数据绘制到它的默认错误点,该错误点最有可能位于地图中间。

ArcGIS Ersi地图发生了这种情况。

答案 1 :(得分:0)

在设备上,检查SettingsDeveloper Options以及最后Allow mock locations

如果知道如何使用不同版本的android更改开发人员选项,您可以Google for it