我制作了一个简单的应用程序,可以使用非常简单的代码获取我所在位置的当前坐标
public Location getLocation() {
lm = (LocationManager) mContext.getSystemService(LOCATION_SERVICE);
GPS = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
network = lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!GPS && !network) {
showsettings();
} else {
Log.d("GPSClass", "GPS: " + GPS + " network: " + network);
this.canGetLocation = true;
if (network) {
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,
MIN_TIME, MIN_DISTANCE, this);
Log.d("GPSClass", "network");
location = lm
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null) {
return location;
}
}
if (GPS) {
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,
MIN_TIME, MIN_DISTANCE, this);
Log.d("GPSClass", "GPS");
location = lm
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
return location;
}
}
}
return null;
}
这很好用,但我无法理解如何。我的意思是即使我的 gps 关闭并且所有 wifi 和网络断开连接,我也能够获得正确的坐标。我的设备如何为我提供正确的坐标(即使在飞行模式下)?