android - Google home 发送卡片到 Google Home 应用

标签 android actions-on-google google-home

我制作了一个小型 Google Home 应用程序,我的服务通过 SimpleMessage + Card 返回响应。

在 console.actions.google.com 模拟器中运行应用程序时,它可以完美运行。我拿到卡了。

但是当我测试与 Google Home 通话时,它只发送文本,任何地方都没有卡片的踪迹。

但是,如果我与手机上的 Google Home 应用通话,它会正确发送卡片。

有没有什么东西可以接收 Google Home 发送的卡片?有可能吗?

最佳答案

无法让用户在通过 Google Home 通话时发送的卡片可见,但作为开发者,如果需要卡片,您可以使用多种技术。

首先 - 好的设计建议卡片应该用来补充对话,而不是成为对话的焦点。确保语音对话本身很重要,并且仅在必要时才使用视觉元素。如果您的操作过于视觉化 - 它可能更适合作为移动或网络应用程序,而不是操作。

如果您的设备需要屏幕,那么您可以在配置问题时在操作控制台中进行设置。但是,这将阻止它在 Google Home 设备上使用。

enter image description here

如果您不想走这条路,并想让它在智能扬声器上使用,但仍要利用它可用的屏幕,您有几个选择。

首先,您可以直接发送卡片。正如您所发现的,它们不会出现,但不会造成任何问题。

如果您希望在屏幕可用时采取稍微不同的操作,您可以检查 surface capabilities用户的助手此时能够执行的操作。如果您使用的是 node.js 库,则可以使用如下命令:

let hasScreen = app.hasSurfaceCapability(app.SurfaceCapabilities.SCREEN_OUTPUT)

确定屏幕是否可用并根据变量hasScreen 采取行动。如果您使用的是 JSON,则需要检查 surface.capabilitiesdata.google.surface.capabilities 中的数组,以查看是否 "actions.capability. SCREEN_OUTPUT" 是可用表面之一。

如果没有,并且您在对话中到了需要发送视觉结果的地步,您还可以请求在支持屏幕输出的设备上继续对话。

首先,您需要确保他们有可用的屏幕。您将使用 node.js 库执行此操作,例如

const screenAvailable = app.hasAvailableSurfaceCapabilities(app.SurfaceCapabilities.SCREEN_OUTPUT);

或通过检查 JSON 中的 availableSurfaces.capabilitiesdata.google.availableSurfaces.capabilities 参数。

如果有人可用,您可以请求在那里继续对话,例如

app.askForNewSurface(context, notif, [app.SurfaceCapabilities.SCREEN_OUTPUT]);

context 是将在 Google Home 上说出的消息,notif 是将出现在他们的移动设备(例如)上的通知,让他们继续谈话。如果使用 JSON,则需要使用 actions.intent.NEW_SURFACE 下一个 Intent 。

无论哪种方式,用户都会在他们的移动设备上收到通知。选择通知将启动该设备上的智能助理,您的操作将再次调用,并使用参数让您检查它们是否在新表面上。如果是这样 - 您可以发送卡片。

关于android - Google home 发送卡片到 Google Home 应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48417663/

相关文章:

java - 如何摆脱为android中的每个类实现Parcelable以便将其用于放置额外的数组列表

android - 运行应用程序时找不到 EasyPermissions 库错误?

android - 在我重新启动模拟器之前,删除的图像仍然显示在 android 图库中

oauth-2.0 - Actions on Google - 如何撤销帐户关联?

actions-on-google - 如何告诉 Actions on Google 流式传输音频?

java - 使用 Actions On Google 从 Webhook 请求获取连接池

android - 加入大图像时出现 OutOfMemory 错误

dialogflow-es - 对话开始回调

dialogflow-es - Dialogflow v2 API - 模拟器中未显示卡片

actions-on-google - Google 上的操作 - 智能家居 - REQUEST_SYNC