KEYCODE_MEDIA_PLAY_PAUSE 被 Google 助理拦截

KEYCODE_MEDIA_PLAY_PAUSE intercepted by Google Assistant

我编写了一个 Android 应用程序,其中包含一个按钮,该按钮会弹出 KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE 以控制第三方媒体播放器应用程序。这可以完美运行数天或数周,但随后关键事件开始被 Google 助手拦截,表面上已关闭。有时它会弹出一条通知,邀请我打开各种 Google 助理功能。有时它会说时间。有时它只会让 Google 助手发出声音,而不会执行其他任何操作。无论如何,有时关键事件也会被第三方媒体播放器接收到,有时则不会。重新启动设备可在一两周内解决该问题。

该应用程序非常简单。相关代码如下:

onCreate中:

    findViewById(R.id.play_button).setOnClickListener(view -> {
        sendKey(KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE);
    });

sendKey的定义:

private void sendKey(int keyCode) {
    KeyEvent down = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode);
    mAudioManager.dispatchMediaKeyEvent(down);
    KeyEvent up = new KeyEvent(KeyEvent.ACTION_UP, keyCode);
    mAudioManager.dispatchMediaKeyEvent(up);
}

我知道这种奇怪的行为通常是特定于设备或运营商的,所以我不知道如何进一步调查或报告它,除非其他人遇到了同样的问题。你见过这个吗,有解决办法吗?我体验过的设备是来自 cricKet 的完全更新的摩托罗拉 Moto G7 Supra,运行 Android 10.

链接到本文的已删除答案:How to Stop Google Assis­tant from Pop­ping up Randomly。文章好像是为Android 9写的,Android 10的时候有些选项已经改了,所以转载文章内容价值不大。从这篇文章中得出的结论是,关闭 Google Assistant 恶意软件实际上并没有将其关闭。您必须在多个地方选择退出,并且 Google 不断添加更多 。以后发现这个问答的人应该浏览设置以获取更多新开关。

正如我在问题中提到的,Google 助手已经在我的设备上“关闭”(文章中的程序 1,步骤 4)。但是有一个名为 你的应用程序 的新助手设置部分。此处列出的每个应用都有一个开关,标签为让你的智能助理从此应用学习

我的设备已经 运行 几个星期了,Google Google 助理干扰了我的关键事件。我关闭了有问题的应用程序的“学习”开关,问题在没有重新启动的情况下消失了。

编辑:关闭“学习”大约三周后似乎解决了问题,它又回来了。我现在已强制关闭并禁用 Google 应用程序。