0

我在 onResume 中使用此代码:

final LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

        if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
            locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10 * 1000, 10, this);
        } else {
            locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10 * 1000, 10, this);
        }

并在Activity中实现了LocationListener。正如我在调试器中看到的,GPS_PROVIDER 已启用。应用程序运行时,我还会看到 GPS 图标。GPS 在设置中启用。这两个权限都已设置。但永远不会调用 onLocationChanged。这段代码在几周前运行良好。

4

2 回答 2

2

您将更新设置为最短时间 10 秒和最短距离 10 米。检查您是否达到了这些最​​低条件。尝试将所有条件设置为 0 并再次检查。

此外,检查 GPS 更新是否有效 - 例如,使用地图应用程序。如果您的设备在“冷”启动时使用 GPS - 您将无法在 10-20 分钟或更长时间内收到更新。

于 2013-06-15T10:18:22.930 回答
1

我建议你

  1. 用于Log.d(...)检查locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)
  2. 还用于捕获对和的Log.d(...)所有调用。onProviderDisabled(...)onProviderEnabled(...)onStatusChanged(...)
我希望得到的输出可以让你解决你的问题。

于 2013-06-15T10:09:44.290 回答