是否可以阻止Google智能助理在Android TV应用中接管RCU麦克风按键信号?

时间:2017-11-15 17:49:06

标签: java android-tv

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

一切都按照预期和上述方式进行,直到最近,Google助理(GA)被引入ATV平台(第一个是Nvidia Shield盒子)。现在,当按下RCU麦克风按钮时,会出现GA叠加层,麦克风键事件甚至无法到达应用程序。

在过去的几天里,我做了一些广泛的研究(文档,互联网,论坛,堆栈溢出等)并尝试了一些潜在的解决方法,但到目前为止还没有任何工作,我无法找到任何明确的信息关于这个话题(可能是由于ATV + GA组合在现场很新,而且ATV生态系统没有Android那么大)。

到目前为止,我得到的最好的提示是使用Spotify app for Android TV做了什么。当它在没有GA的ATV设备上运行时,它基本上如上所述;但是当GA出现时,GA叠加层出现,接收解析后的语音并显示搜索结果,Spotify的结果显示在第一行 - 因此,Spotify应用程序与GA集成,此集成取代了应用内语音控制机制。这表明无法忽略/禁用应用内的GA以接收麦克风键事件并像往常一样继续进行语音控制,或者至少这是现在处理语音命令的首选方式。它还表明ATV的应用程序以我描述的方式接近语音控制,所以也许有人在这里遇到过类似的问题。

我的问题:

  • 是否可以阻止Google智能助理接收RCU麦克风按钮信号?
  • 可以这样做吗? (通过“不行”我的意思是 - 是否有任何官方指导方针阻止此类行为 - 或者至少是否有正当理由不这样做?)
  • 如果是的话,可以吗?
  • 如果没有,是否有资源记录如何与GA集成(Spotify for ATV app的方式)?

1 个答案:

答案 0 :(得分:0)

从上一个问题开始:

  

如果没有,是否有资源记录如何与GA集成(Spotify for ATV app的方式)?

我写了关于如何整合Android Developer's Blog的文章。 Spotify有onboarded their content catalog to Google's services这就是为什么Google智能助理能够很好地运作的原因。如果您可以搜索应用程序(在博客中介绍),您可以获得类似的结果。

  

是否可以阻止Google智能助理接管RCU麦克风按键信号?

不,不是在这个时候。 Google智能助理是一款系统应用,可控制麦克风,为所有应用提供统一的体验。

  

这样做可以吗? (通过"不好"我的意思是 - 是否有任何官方指导方针阻止此类行为 - 或者至少是否有正当理由不这样做?)

     

如果是的话,可以吗?

您仍然可以获得in-app search经验。 leanback样本中有一个例子。您需要set a listener on a BrowseFragment并实施SearchFragment。我们知道这可能令人困惑,有应用内搜索和Google智能助理搜索竞争,但我们正在努力改进这一点。