gpt4 book ai didi

android - 如何正确调用 Service 中的 startIntentSenderForResult?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:00:13 25 4
gpt4 key购买 nike

我正在开发一项获取位置的服务,我正在为其使用 Google Play 服务。

根据 http://developer.android.com/reference/com/google/android/gms/common/ConnectionResult.html#hasResolution%28%29 ,如果 hasResolution() 返回 true,则调用 startResolutionForResult 可能会解决错误。但它需要一个 Activity 作为第一个参数。

当然ConnectionResult通过 getResolution() 返回一个 PendingIntentService 没有像 那样的 startIntentSenderForResult() > Activity
据我所知,没有办法在 Service 中返回结果。

如何在 Service 中获取结果?或者有其他正确的方法吗?

编辑:

<罢工>Google Play 服务 SDK 提供 GooglePlayServicesUtil.showErrorNotification用于后台任务。当然接受的答案是很好的解决方案。

编辑 2:

showErrorNotification 仅针对 isGooglePlayServicesAvailable 的返回值。

最佳答案

我会这样进行:

  1. 显示一条通知,表明执行任务 X 时出现问题(实际上,与 Google Play Services 交互,但你可能会说别的更具体到您的应用)。

  2. 对于此通知,提供一个启动您的 Activity 的 PendingIntent。作为此 PendingIntent 额外功能的一部分,传递 ConnectionResult.getResolution() 提供的 PendingIntent。 PendingIntents 是可打包的,因此这应该不会造成问题。

  3. 在这个Activity的onCreate()中,从extras中获取originalPendingIntent,然后调用startIntentSenderForResult( ) 与它。这会自动将用户重定向到 Google Play 服务需要他去的地方(可能是登录?)

  4. 然后,在 onActivityResult() 中,完成 Activity ,首先通知您的服务(通过 Intent)问题已解决(或未解决)。瞬时 Activity 将对用户不可见。

我承认这个解决方案是理论上的,但它应该可行。

关于android - 如何正确调用 Service 中的 startIntentSenderForResult?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23648786/

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