gpt4 book ai didi

android - 在 Android 中结束第二个通话时未收到电话状态事件

转载 作者:行者123 更新时间:2023-11-29 01:54:16 25 4
gpt4 key购买 nike

我注册了一个 PHONE_STATE 监听器,以便检测用户何时开始和结束通话。如果有人想知道,我这样做完全是为了娱乐和学习,所以不存在隐私问题。

无论如何,我在使用 telnet 和模拟器进行实验时发现了一个问题。在一个特定的场景中,当一个调用被保持并且第二个调用( Activity 调用)结束时,我的听众没有收到任何事件。我期待它至少在第一个调用再次激活时收到另一个摘机,如果不是同时空闲 + 摘机的话。但是什么都没有。

在相关说明中,我还注意到没有为保持通话定义的电话状态事件,这对我来说也有点奇怪。

当然,Android 日志条目会正确反射(reflect)这些事件。问题是,我怎样才能在代码中可靠地检测到它们?我是否应该监控日志本身(不确定这是否可能)而不是依赖电话状态监听器?

我正在通过 Xamarin Studio 在模拟器上测试 API 15,所以我的代码是 C# + Xamarin.Android on Mono,而不是直接使用 Java。可能这种行为只是一个其中一层中的错误或遗漏,但更有可能我只是遗漏了一些明显的东西。

FWIW,我还没有在真实设备上测试我的代码。我知道某些硬件的行为可能与我在模拟器中看到的有所不同。

最佳答案

是的,这是一个问题。当有多个调用时很难检测到:

可以通过idle to offhookringing to offhook 检测到第一个调用,即拨号或来电。现在,当电话摘机响铃时,我们知道有第二个来电。如果您调用第二个电话,它的摘机到摘机,因此无法从这里检测到。 (不过您可以收听拨号广播)。现在,如果第二个调用被拒绝,我们将得到 ringing to offhook 这与接听电话混淆。

恕我直言,只有 3 个状态不足以跟踪多个调用,但这就是 API 暂时支持的。

关于android - 在 Android 中结束第二个通话时未收到电话状态事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16117945/

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