如何解决如何通过 BroadcastReceiver 从给定的 IntentSender 获取结果
我知道如何执行以下操作
- 通过
PendingIntent
获取broadcastReceiver
的结果(例如启动选择器并在用户做出选择后获取结果) - 通过调用
IntentSender
通过 Activity 的
onActivityResult
获取 startIntentSenderForResult
的结果
但是,我需要做的是启动 IntentSender
但通过 broadcastReceiver
返回结果。请注意,IntentSender
是给我的,因此我无法访问与 PendingIntent
对应的原始 IntentSender
。
有没有办法做到这一点,也许是通过将额外的意图捆绑到 intentSender.sendIntent()
?
我还阅读了 this question 并验证了 onFinished
中的 sendIntent()
回调会立即触发并且实际上并未返回正在启动的意图的结果。
上下文
我正在使用 Android 的 CompanionDeviceManager
进行 companion device pairing。当它找到一个设备时,它会给我 IntentSender chooserLauncher
。它期望活动使用 startIntentSenderForResult()
调用 chooserLauncher
并从活动中获取结果。但是,这对我不起作用,因为我正在开发一个库,我不希望将结果传递给活动,而是传递给我拥有的 broadcastReceiver
。
解决方法
这是不可能的。
只有 Activity
可以调用 startActivityForResult()
,这将启动 Activity
。结果只能返回到 Activity
中的 onActivityResult()
。无法将结果直接返回到 BroadcastReceiver
。那样不行。
您必须让您图书馆的用户在他的 Activity.onActivityResult()
中接收结果,并通过您可以提供的任何方式将其传递给您的图书馆。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。