android – 如何在服务中正确调用startIntentSenderForResult?

android – 如何在服务中正确调用startIntentSenderForResult?,第1张

概述我正在开发一个获取位置的服务,我正在使用Google Play服务. 根据http://developer.android.com/reference/com/google/android/gms/common/ConnectionResult.html#hasResolution%28%29,如果hasResolution()返回true,则调用startResolutionForResult可 我正在开发一个获取位置的服务,我正在使用Google Play服务.

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

当然ConnectionResult通过getResolution()返回PendingIntent,但是Service没有像Activity那样的startIntentSenderForResult().
据我所知,没有办法在服务中得到结果.

如何在服务中获得结果?还是有其他正确的方法吗?

编辑:

Google Play Service SDK为后台任务提供了GooglePlayServicesUtil.showErrorNotification.当然接受的答案是很好的解决方案.

编辑2:

showErrorNotification仅适用于isGooglePlayServicesAvailable的返回值.

解决方法 我会这样做:

>显示通知,指示执行任务X时出现问题
(实际上,与Google Play服务进行互动,但您可能会说些其他内容
更具体的应用程序).
>对于此通知,请提供启动活动的PendingIntent.作为此PendingIntent的附加内容的一部分,传递ConnectionResult.getResolution()提供的PendingIntent. PendingIntents是可以分配的,所以这不应该成为问题.
>在此活动的onCreate()中,从附加内容中获取原始PendingIntent,然后使用它调用startIntentSenderForResult().这会自动将用户重定向到Google Play服务需要他去的地方(可能是登录?)
>然后,在onActivityResult()中,完成活动,首先通知您的服务(通过Intent)解决问题(或不解决).瞬态活动对用户来说是不可见的.

我承认这个解决方案是理论上的,但它应该有效.

总结

以上是内存溢出为你收集整理的android – 如何在服务中正确调用startIntentSenderForResult?全部内容,希望文章能够帮你解决android – 如何在服务中正确调用startIntentSenderForResult?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1139148.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存