[英]Is it possible for google assistant to press a button in a certain app on Android?
[英]Is it possible to prevent Google Assistant from taking over RCU mic button signal in an Android TV app?
我正在使用的Android TV(ATV)应用程序具有语音控制功能。 基本上,当用户按下遥控器上的麦克风按钮时,按键事件(由KeyEvent.KEYCODE_SEARCH
标识)由应用程序处理,语音识别开始(使用android.speech.SpeechRecognizer
),获得结果(解析语音)并由应用逻辑进一步解析(例如,显示用户搜索结果或执行某些应用内操作)。
一切都按预期的方式进行了上述工作,直到最近,Google Assistant(GA)才引入ATV平台(第一个是Nvidia Shield盒)。 现在,当按下RCU麦克风按钮时,GA叠加层出现,并且麦克风按键事件甚至没有到达应用程序。
在过去的几天里,我进行了一些广泛的研究(文档,Internet,论坛,stackoverflow等),并尝试了一些可能的解决方法,但到目前为止,没有任何效果,并且我无法找到关于该主题的任何明确信息(可能是由于ATV + GA组合在现场是相当新的,并且ATV生态系统没有Android系统那么大)。
到目前为止,我得到的最好的提示是Android TV的Spotify应用已完成了什么工作。 当它在没有GA的ATV设备上运行时,其行为基本上与我上述相同; 但是当存在GA时,GA叠加层就会出现,接收经过解析的语音并显示搜索结果,第一行中有Spotify的结果-因此,Spotify应用程序已与GA集成,并且此集成替代了应用内语音控制机制。 这表明,要么没有办法忽略/禁用应用程序内的GA以便接收麦克风按键事件并像往常一样进行语音控制,要么至少这是现在处理语音命令的首选方式。 它还表明,有一些ATV应用程序可以按照我所描述的方式进行语音控制,所以这里的某人可能已经遇到了类似的问题。
我的问题:
从您的最后一个问题开始:
如果没有,是否有资源记录如何与GA集成(Spotify for ATV应用程序的方式)?
我在Android开发者博客上写了关于如何集成的文章 。 Spotify已将其内容目录加入了Google的服务 ,这就是Google Assistant能够如此出色地工作的原因。 如果使应用程序可搜索(在博客中介绍),则可以实现类似的结果。
是否可以阻止Google Assistant接管RCU麦克风按钮信号?
不,目前不行。 Google助手是一个系统应用程序,可以控制麦克风,以在所有应用程序中提供统一的体验。
这样可以吗? (我的意思是“不行”-是否有任何官方准则劝阻此类行为-或至少有正当理由不这样做?)
如果可以,可以做到吗?
您仍然可以享受应用内搜索的体验。 leanback示例中有一个示例。 您将需要在BrowseFragment上设置侦听器并实现SearchFragment 。 我们知道这可能会造成混淆,应用程序内搜索和Google Assistant搜索之间存在竞争,但是我们正在研究如何改善这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.