以编程方式在Android中获取位置

时间:2010-12-31 06:36:51

标签: android location

我知道这已被问了很多,所以我道歉。我有以下代码,无法获取位置,始终为null响应。我试图在这个实例中避免使用LocationListener,因为我已经在使用更新服务,并且该位置实际上不一定非常好,因此最后一个已知位置足够好。谢谢你的帮助。

LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
String providers[] = {"gps", "network", "passive"};
Location loc = null;
for(String x : providers) {  
    loc = lm.getLastKnownLocation(x);
    if(loc != null) break;  
}
if(loc != null) {
    // do something, never reached
}

2 个答案:

答案 0 :(得分:1)

  

我有以下代码,无法获取位置,始终为空响应。

当然。

  

我正在尝试避免此实例中的LocationListener,因为我已经在使用更新服务

我不知道这意味着什么,但我怀疑你是否需要一个LocationListener

Android不会经常检查您的位置。特别是GPS,这对电池来说太可怕了。 Android仅在有人使用requestLocationUpdates()addProximityAlert()时检查您的位置。

答案 1 :(得分:1)

我不确定但也许这是因为您使用模拟器? 我记得我已经尝试检查最后一个已知的位置并且有类似你的错误。 所以我总是在使用之前检查getLastKnownLocation(provider)!= null。