Java 有没有可能阻止谷歌助手接管Android电视应用程序中的RCU麦克风按钮信号?

Java 有没有可能阻止谷歌助手接管Android电视应用程序中的RCU麦克风按钮信号?,java,android-tv,Java,Android Tv,我正在开发的Android TV(ATV)应用程序具有语音控制功能。基本上,当用户按下遥控器上的麦克风按钮时,按键事件(由KeyEvent.KEYCODE\u SEARCH标识)由应用程序处理,语音识别开始(使用android.SpeechRecognizer),结果(解析的语音)由应用程序逻辑获得并进一步解析(例如,显示用户搜索结果或执行一些应用程序内操作) 一切都按照预期和上述方式运行,直到最近,谷歌助手(GA)被引入ATV平台(第一个是Nvidia Shield box)。现在,当按下RC

我正在开发的Android TV(ATV)应用程序具有语音控制功能。基本上,当用户按下遥控器上的麦克风按钮时,按键事件(由
KeyEvent.KEYCODE\u SEARCH
标识)由应用程序处理,语音识别开始(使用
android.SpeechRecognizer
),结果(解析的语音)由应用程序逻辑获得并进一步解析(例如,显示用户搜索结果或执行一些应用程序内操作)

一切都按照预期和上述方式运行,直到最近,谷歌助手(GA)被引入ATV平台(第一个是Nvidia Shield box)。现在,当按下RCU麦克风按钮时,GA覆盖显示,麦克风按键事件甚至没有到达应用程序

在过去的几天里,我做了一些广泛的研究(文档、互联网、论坛、stackoverflow等),并尝试了一些潜在的解决方法,但到目前为止没有任何效果,我也没有找到任何关于这个主题的明确信息(可能是因为ATV+GA组合在场景中比较新,而且ATV生态系统没有Android生态系统那么大)

到目前为止,我得到的最好的提示是对的操作。当它在没有GA的ATV设备上运行时,它的行为基本上与我上面描述的一样;但是当GA存在时,GA覆盖显示,接收解析的语音并显示搜索结果,第一行是Spotify的结果-因此,Spotify应用程序与GA集成,这就是集成取代了应用程序内的语音控制机制。这表明要么无法忽略/禁用应用程序内的GA,以便接收麦克风键事件并像往常一样继续进行语音控制,要么至少这是现在处理语音命令的首选方式。这还表明,有一些ATV应用程序接近语音c控制我描述的方式,所以这里可能有人已经遇到了类似的问题

我的问题:

  • 是否有可能阻止谷歌助手接管RCU话筒按钮信号
  • 这样做可以吗?(我所说的“不可以”是指——是否有任何官方指导方针阻止这种行为——或者至少有合理的理由不这样做?)
  • 若然,可否这样做
  • 如果没有,是否有资源记录如何与GA集成(就像Spotify for ATV应用程序那样)

从最后一个问题开始:

如果没有,是否有资源记录如何与GA集成(就像Spotify for ATV应用程序那样)

我写了关于如何在.Spotify上集成的文章,这就是为什么谷歌助手能够工作得这么好的原因。如果你让你的应用程序可以搜索,你可以获得类似的结果(在博客中有介绍)

是否有可能阻止谷歌助手接管RCU话筒按钮信号

不,现在不是。谷歌助手是一个控制麦克风的系统应用程序,可以在所有应用程序中提供统一的体验

这样做可以吗?(我所说的“不可以”是指——是否有任何官方指导方针阻止这种行为——或者至少有合理的理由不这样做?)

若然,可否这样做


您仍然可以有经验。leanback示例中有一个示例。您将需要并实现一个。我们知道这可能会令人困惑,应用内搜索和Google Assistant搜索相互竞争,但我们正在努力改进这一点。

从您的最后一个问题开始:

如果没有,是否有资源记录如何与GA集成(就像Spotify for ATV应用程序那样)

我写了关于如何在.Spotify上集成的文章,这就是为什么谷歌助手能够工作得这么好的原因。如果你让你的应用程序可以搜索,你可以获得类似的结果(在博客中有介绍)

是否有可能阻止谷歌助手接管RCU话筒按钮信号

不,现在不是。谷歌助手是一个控制麦克风的系统应用程序,可以在所有应用程序中提供统一的体验

这样做可以吗?(我所说的“不可以”是指——是否有任何官方指导方针阻止这种行为——或者至少有合理的理由不这样做?)

若然,可否这样做

您仍然可以有经验。leanback示例中有一个示例。您需要安装和实现一个。我们知道这可能会令人困惑,应用内搜索和Google Assistant搜索相互竞争,但我们正在努力改进这一点