2

我正在设备上测试我的 Android 应用程序,但在我使用时它总是失败

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
currentLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

但是,如果我使用 NETWORK_PROVIDER 而不是 GPS_PROVIDER,它可以工作。currentLocation 返回空值。

我该如何处理?我需要在我的 locationListener 中添加任何特定内容吗?

谢谢!

4

2 回答 2

3

GPS_PROVIDER 可能无法在有限的地方工作,假设在房子里或类似的地方。您应该以这样一种方式对其进行编程,即如果 gps 提供商提供空位置,那么您可以使用网络提供商作为替代方案,尽管它的准确性不是那么高。这里还有另一个问题。您的代码应如下所示:

     if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)
{
     locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
    currentLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
}
于 2011-08-25T09:47:16.557 回答
1

首先,检查设备状态栏上的 GPS 图标是否已停止闪烁,这表明您确实有 GPS 锁定。

如果当前位置未知,则调用返回 null,例如,如果您缺少 GPS 锁定。

于 2011-08-25T09:40:08.037 回答