我已经制作了一个简单的应用来使用非常简单的代码获取我所在位置的当前坐标
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和网络断开我能够得到我正确的坐标。我的设备如何为我提供正确的坐标(即使在飞行模式下)?
答案 0 :(得分:1)
来自文档:
getLastKnownLocation
返回指示上一个已知位置的数据的位置 从给定的提供者处获得的修复。
因此,如果提供商过去获得了有效位置,则会返回此位置
答案 1 :(得分:0)
我在我的博客上写了一个完整的位置服务帮助程序类,如果有帮助的话,包含所有代码。看看,告诉我。