首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >VoiceInteractionService是如何工作的?

VoiceInteractionService是如何工作的?
EN

Stack Overflow用户
提问于 2019-05-09 20:01:05
回答 1查看 2.6K关注 0票数 8

关于VoiceInteractionService,我有很多问题。

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

在我看来,这是一种机制,通过这种机制,Google助手可以将钩子连接到操作系统中,从而真正作为默认的助手工作。然而,它仍然有很多需要更多的解释。

在VoiceInteractionSession中:

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

VoiceInteractionService:

  1. createAlwaysOnHotwordDetector --如果我希望同时激活多个热词,该怎么办?比如“嘿谷歌”和“OK谷歌”?
  2. 关于热词检测器回调:当调用onDetected时,有一个getTriggerAudio()方法,它包含触发请求的原始音频。如何确保您不错过任何用户的讲话?例如,对于用户来说,说“嘿谷歌时间”比“嘿谷歌…”要好得多。时间“。
  3. 调用showSession的回调中是否有正确的“响应”?
  4. 假设助手希望在实际显示任何UI之前运行辅助唤醒字验证(也就是确保用户实际说了热词),那么最好的方法是:
    1. 运行热词检测器回调中的验证。
    2. 如果确实是唤醒词,请呼叫显示会话。
    3. 否则,静悄悄地忽略

  1. onLaunchVoiceAssistFromKeyguard的文档说,您需要使用锁定屏幕标志上的显示开始一个活动。这有点让人困惑,因为我仍然不确定是否应该启动一个活动来显示UI,还是以某种方式使用onCreateContentView()?
  2. setUiHints是做什么的?提示将出现在什么环境中?是烤面包吗?它们是否嵌入到其他UI中?

一般性问题:

  1. 以下清单属性与VoiceInteractionService之间有什么关系?基于web上的其他文档,需要显示为潜在的默认助手的代码是AndroidManifest.xml中的以下代码片段,如下所示:https://gist.github.com/pedrovgs/c424fe754a74f326e997。但是,似乎包含VoiceInteractionService的应用程序也会自动出现在列表中。是否有一种建议的方式向前推进有一个不同的助手?
EN

回答 1

Stack Overflow用户

发布于 2020-07-23 09:38:08

对于VoiceInteractionSession中的UI,您应该膨胀布局(在onCreateContentView()中使用getLayoutInflater().inflate(layout),通过id查找视图并返回视图)。

如果需要设置主题,则应该使用setTheme(theme)进行设置,并在onCreate() 中调用调用super.onCreate()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56066756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档