Android - 以编程方式在华为通话时启用扬声器

Android - programmatically enable speakers while on call for Huawei

想法是在用户通话时启用 phone 上的扬声器。 所以首先我监听 TelephonyManager.CALL_STATE_OFFHOOK 状态,然后延迟 2 秒我调用以下代码片段:

val audioManager = getSystemService(Context.AUDIO_SERVICE) as AudioManager

if (!audioManager.isSpeakerphoneOn) {
      audioManager.mode = AudioManager.MODE_IN_CALL
      audioManager.isSpeakerphoneOn = true
}

这在三星上运行良好,但由于某些原因,在 Huawei P20 Pro 上不起作用。有什么想法吗?

您可能不会拒绝。但我认为你在这里运气不好。我已经看到您所描述的问题多次出现,但没有描述修复方法。无论如何,很明显标准 Android Audiomanager 不适用于华为 phones。 (目前,华为未来可能会修复)

不过,我确实在华为的文档中找到了this link到所谓的'Audio Engine'。文档没有那么详尽,但您可以尝试探索图书馆。

不过,这可能会奏效,但您必须检测您使用的 phone 是哪个品牌,这可能超出您的范围并引入其他缺陷,但这是有可能的。