Android 如何通过BroadcastReceiver从给定的IntentSender获得结果

Android 如何通过BroadcastReceiver从给定的IntentSender获得结果,android,android-intent,android-pendingintent,Android,Android Intent,Android Pendingintent,我知道如何做下面的事情 通过BroadcastReceiver(例如,启动选择器并在用户做出选择后获取结果)获取pendingent的结果 调用startinentsenderforresult 但是,我需要做的是启动IntentSender,但通过BroadcastReceiver返回结果。请注意,IntentSender是给我的,因此我无法访问与IntentSender对应的原始pendingent 有没有办法做到这一点,也许可以通过将其他意图捆绑到intentSender.sendIn

我知道如何做下面的事情

  • 通过
    BroadcastReceiver
    (例如,启动选择器并在用户做出选择后获取结果)获取
    pendingent
    的结果
  • 调用
    startinentsenderforresult
但是,我需要做的是启动
IntentSender
,但通过
BroadcastReceiver
返回结果。请注意,
IntentSender
是给我的,因此我无法访问与
IntentSender
对应的原始
pendingent

有没有办法做到这一点,也许可以通过将其他意图捆绑到
intentSender.sendIntent()

我还阅读并验证了
sendIntent()
中的
onFinished
回调是否立即启动,并且实际上没有返回启动intent的结果

上下文 我正在使用Android的
公司设备管理器
。当它找到一个设备时,它会给我
intentsenderchooserlauncher
。它期望某个活动使用
chooserLauncher
调用
startIntentSenderForResult()
,并从该活动返回结果。但是,这对我来说不起作用,因为我正在开发一个库,我不希望结果传递给活动,而是传递给我拥有的
广播接收器。

这是不可能的

只有
活动
可以调用
startActivityForResult()
,这将启动
活动
。结果只能返回到
onActivityResult()
中的
活动。无法将结果直接返回到
广播接收器
。这样不行

您必须让库的用户在其
活动.onActivityResult()
中接收结果,并通过您可以提供的任何方式将其传递给库