小编Eri*_*ric的帖子

VoiceInteractionService如何工作?

我对VoiceInteractionService有很多疑问。

https://developer.android.com/reference/android/service/voice/VoiceInteractionService

对我来说似乎很清楚,这是Google助手通过挂钩机制进入操作系统以实际用作默认助手的机制。但是,仍有很多地方需要更多解释。

在VoiceInteractionSession中:

  1. 该文档说:“默认情况下,最初显示用户界面,并且可以通过覆盖onCreateContentView()(https://developer.android.com/reference/android/service/voice/VoiceInteractionSession.html#onCreateContentView()来创建该用户界面)应如何构建语音服务的UI?当前,我们的UI存在于Activity中。但是会话中存在getLayoutInflater(),getWindow(),onShow()和onCreateContentView()使得我不确定如何显示UI。我是否应该发送意图以便在onShow()中显示我们的UI活动?还是应该在Java中创建UI并将其作为onCreateContentView()中的视图返回?我应该使用窗口绘制吗?我是否需要随时调用setContentView()?
  2. 我也不清楚startAssistantActivity()方法,startVoiceActivity()方法和上述方法之间的关系。我们什么时候要调用startAssistantActivity?我们什么时候要调用startVoiceActivity?在文档中,“默认情况下,系统将为此会话的UI创建一个窗口。如果使用的是辅助活动,则可以通过在onPrepareShow中调用setUiEnabled来禁用窗口创建。这是onCreateContentView()返回的视图吗?与onCreateContentView相比,startAssistantActivity()是否是显示助手UI的另一种方式?
  3. 如何调用onLockscreenShown()?从锁定屏幕启动助手时会调用它吗?用户在助手打开时是否锁定了手机?
  4. 要在锁定屏幕上显示助手UI,是否需要做些特殊的事情?
  5. 为什么不调用closeSystemDialogs()?似乎您几乎永远不想在助手应用程序上看到系统窗口。
  6. 如果用户通过按住主屏幕按钮或其他方式调用了助手,是否有办法可靠地获取前台组件名称?我看到getActivityComponent()是AssistStructure中的访问器,但是我不清楚会话在哪种情况下可以访问该对象。
  7. 各种服务和会话的生命周期是什么?如果有单独的服务实际上在处理音频数据,那么该服务何时应绑定/取消绑定?在onShow()和onHide()中?

VoiceInteractionService:

  1. createAlwaysOnHotwordDetector-如果我想一次激活多个热键怎么办?例如,“嘿Google”和“ OK Google”?
  2. 关于热字检测器回调:调用onDetected时,有一个方法getTriggerAudio()包含触发请求的原始音频。如何确保您不会错过任何用户讲话?例如,相对于“嘿谷歌……”,用户说“嘿谷歌时间”是一种更好的体验。时间”。
  3. 回调中正确的“响应”以调用showSession吗?
  4. 假设助手想要在实际显示任何UI之前运行辅助唤醒单词验证(也要确保用户确实说出了这个热门单词),是执行此操作的最佳方法:
    1. 在热字检测器的回调中运行验证
    2. 如果确实是唤醒词,请致电show session
    3. 否则,请保持沉默
  5. onLaunchVoiceAssistFromFromKeyguard的文档说,您需要使用在锁屏上显示标志开始活动。这有点令人困惑,因为我仍不确定是否应该启动活动来显示UI或使用onCreateContentView()?
  6. setUiHints是做什么的?提示将出现在什么上下文中?他们是敬酒吗?它们是否已嵌入其他UI?

一般的问题:

  1. 以下清单属性和VoiceInteractionService之间是什么关系?根据网络上的其他一些文档,需要显示为潜在默认助手的是AndroidManifest.xml中的以下代码,如下所示:https : //gist.github.com/pedrovgs/c424fe754a74f326e997。但是,似乎还自动在列表中包含一个包含VoiceInteractionService的应用程序。有没有推荐的方法让其他助手继续前进?

android google-assistant-sdk

6
推荐指数
1
解决办法
222
查看次数

标签 统计

android ×1

google-assistant-sdk ×1