1

我已升级我的位置应用程序以使用谷歌地图 v2。
一切正常,但我看到 v2 fused 提供程序的一个奇怪行为:

当我在设置中关闭 WIFI 时,虽然手机网络可用,onLocationChanged但不会调用回调!

如果在设置中打开了 wifi,(并且没有可用的 WIFI 网络,只有蜂窝网络),onLocationChanged回调会被很好地调用。
在使用 v1 的旧版本应用程序中,不会发生这种行为。

有谁知道为什么会发生这种情况以及如何解决它?

感谢您抽出时间。

编辑:我用于获取位置更新的代码(主要部分):

            mLocationClient = new LocationClient(context, this, this);
        // Start with updates turned off
        mUpdatesRequested = false;
        // Create the LocationRequest object
        mLocationRequest = LocationRequest.create();
        // Use high accuracy
        mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
        // Set the update interval to 5 seconds
        mLocationRequest.setInterval(UPDATE_INTERVAL);
        // Set the fastest update interval to 1 second
        mLocationRequest.setFastestInterval(FASTEST_INTERVAL);
        mLocationClient.connect();

然后:

  @Override
    public void onConnected(Bundle arg0) {
        mLocationClient.requestLocationUpdates(mLocationRequest,
                LocationV2.this);
    }
4

1 回答 1

0

我遇到了同样的问题,花了几个小时寻找解释后,似乎 onLocationChanged 没有被解雇,因为当前位置与前一个位置相同。事实上,使用蜂窝网络,准确性更差。我建议你使用LocationManager#getLastKnownLocation

这是更详细的评论

如果您找到了其他解决方案,请告诉我。

于 2013-08-15T20:26:22.280 回答