我对阻止和传递呼叫有一个令人沮丧的问题。
我的应用流程如下:
- 接收 的意图的广播接收器 BR
NEW_OUTGOING_CALL
,停止呼叫(由setResultData(null);
)并启动服务 S。 - S 决定是否调用(并显示一个对话框)。如果它决定用标志来
startActivity()
调用它ACTION_CALL
。NEW_TASK
(并放置一些标识符,以便下次 BR 收到它时不会阻止它。
到目前为止,此流程运行良好,但在 Galaxy S3 上存在问题:
- 它只会阻止调用 - 新调用的 startActivity() 不起作用。
- 我认为这是因为系统仍在处理第一个请求并放弃了新呼叫。
- 我试图调用 abortBroadcast(); 来自 BR,但我收到“未发送呼叫”oppup,这意味着系统仍在处理该意图
- 我通过在服务中设置后延迟成功地获得了所需的功能,因此两次调用之间会有一点时间跨度。
我可以在不延迟新呼叫的情况下实现所需的功能吗?