gpt4 book ai didi

android - 如何为位置服务实现 onConnectionFailed() 和 onDisconnected()

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:32 31 4
gpt4 key购买 nike

我正在使用一个 Service 实现 com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbackscom.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener

该服务应该在运行时每分钟将位置更新上传到服务器。我在 google 上搜索了教程,但找不到适合我的场景的教程。

我不知道如何实现的方法是:

@Override
public void onConnectionFailed(ConnectionResult connectionResult) {

...
}

有一些教程建议使用 connectionResult.startResolutionForResult(this, CONNECTION_FAILURE_RESOLUTION_REQUEST); 开始一个 Activity ,但因为这是一个服务(不是 Activity )我不能不要用这个方法。我想将 Intent 中的 connectionResult 发送到 Activity ,但 ConnectionResult 不可序列化。

@Override
public void onDisconnected() {

...
}

我应该在这里再次调用 LocationClient#connect() 吗?

最佳答案

1.onConnectionFailed() 中:
对于“我想将 Intent 中的 connectionResult 发送到 Activity ,但 ConnectionResult 不可序列化。”我认为它可以通过以下方式在没有它的情况下工作:

你可以返回 int ; ConnectionResultErrorCodesConstants 值,根据该值,您可以分配进一步的操作,只需将控制传递给您的 Activity/应用程序。< br/>来自: http://developer.android.com/reference/com/google/android/gms/common/ConnectionResult.html

2.onDisconnected()中,
您可以通知用户“您不再接收位置更新”或其他自定义消息,具体取决于您的应用,它会提示用户采取行动。
如果您的服务由于某种我们不知道的原因进入 onDisconnected(),再次调用 locationClient.connect() 可能无济于事。

在这两种情况下,我们的想法是将控制权传递给您的应用程序,以便在您的 Activity 中的某个位置,它可以作为控制流的决策点。

此外,您还提到“......但我找不到适合我的场景的任何东西。”因此,稍微准确地描述您的要求可能会对您有所帮助。将相应地编辑我的答案。

如果它向服务器发送位置更新,然后将控制权传回您的 Activity/应用程序并提示用户采取行动也会有所帮助。 (例如,检查设置以启用位置访问服务)


任何人查找此问题/答案的当前情况
com.google.android.gms.location 下不再找到 LocationClient ,引用:
Android play services 6.5: LocationClient is missing

关于android - 如何为位置服务实现 onConnectionFailed() 和 onDisconnected(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22329489/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com