【问题标题】:Android location API failsAndroid 位置 API 失败
【发布时间】:2013-08-28 15:18:16
【问题描述】:

我使用的 Google Play 位置 API 与 tutorial 中的 API 差不多。 但它似乎在某些情况下会失败。让我解释一下:

首先我们创建一个客户端并连接到它:

    mLocationClient = new LocationClient(mContext, this, this);
    mLocationClient.connect();

然后当连接时,我们请求位置更新传递一个挂起的意图:

@Override
public void onConnected(Bundle arg0) {
    LocationRequest locationRequest = LocationRequest.create().setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY).setInterval(UPDATE_INTERVAL).setFastestInterval(FASTEST_INTERVAL);
    mPendingIntentLocationUpdated = PendingIntent.getService(mContext, 0, (new Intent(mContext, MyService.class)).setAction(MyService.ACTION_LOCATION_UPDATED), 0);
    mLocationClient.requestLocationUpdates(locationRequest, mPendingIntentLocationUpdated);
}

位置更新 1 分钟后,我们通过调用 removeLocationUpdates() 停止它。

我们非常有规律地调用整段代码(客户端连接、请求更新),每小时调用几次。

这在最初和一段时间内有效,但在某些设备上它会在一段时间后失败:LocationClient 已连接并调用 onConnected(),但由于某种原因不再触发 pendingIntent!

它似乎只在 Android 4.1.2 上失败。我在 Android 4.2 或 4.3 上没有发现问题。

我真的不知道如何处理这个错误,欢迎任何帮助或建议!

编辑:只有在禁用 WiFi 时才会失败。如果您启用 WiFi 并且它已连接,则位置更新将再次起作用。看来定位服务需要WiFi来更新位置,即使3G已开启并已连接......但WiFi应该不是必需的!

【问题讨论】:

    标签: android geolocation google-play-services


    【解决方案1】:

    如果您选择 accuracy_fine 位置,将使用 gps,并且您不需要任何互联网连接。

    【讨论】:

    • 谢谢,但我不想使用 GPS,它太耗电且在室内无法工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 2020-07-07
    • 2015-12-14
    • 1970-01-01
    • 2017-01-22
    相关资源
    最近更新 更多