我正试图获取手机的当前位置,我不需要知道设备的最后位置。 以下代码获取我的手机的经纬度,但始终返回非洲的数据
的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.0643404
,2.6465832,7
。怎么回事?
我已经在许多设备上测试了我的应用程序并且发生了相同的
答案 0 :(得分:1)
当您的gps点无效或纬度/经度点无效时,有时会发生这种情况。然后地图将数据绘制到它的默认错误点,该错误点最有可能位于地图中间。
ArcGIS Ersi地图发生了这种情况。
答案 1 :(得分:0)
在设备上,检查Settings
下Developer Options
以及最后Allow mock locations
如果知道如何使用不同版本的android更改开发人员选项,您可以Google for it。