【问题标题】:Actions on Google check for available mobile phoneActions on Google 检查可用手机
【发布时间】:2019-12-17 06:39:37
【问题描述】:

我目前正在使用 google SDK 上的操作创建多表面操作。在此操作中,我的用户需要输入代码,如果他们输入代码 3 次失败,我想检查用户是否有可用的手机,以便他们可以通过手机键盘输入代码。

我已经尝试过使用surface capabilities,但我注意到没有针对特定设备类别的检查。相反,检查是基于capabilities

我想要实现的是,如果用户无法通过语音输入代码,如果他们使用的是没有键盘的设备(Google Home 或 Google Nest Hub)并且他们有手机可用,那么他们应该提示将对话移至他们的移动设备。

我目前使用以下代码来确定用户是否有移动设备并且尚未使用移动设备:

    const hasOtherDeviceWithScreen = conv.available.surfaces.capabilities.has("actions.capability.SCREEN_OUTPUT");
    const hasOtherDeviceWithBrowser = conv.available.surfaces.capabilities.has("actions.capability.WEB_BROWSER");

    const hasAvailableMobileDevice = (hasOtherDeviceWithScreen === true && hasOtherDeviceWithBrowser === true);
    const currentDeviceHasScreen = conv.screen;
    const currentDeviceHasBrowser = conv.surface.capabilities.has("actions.capability.WEB_BROWSER");

    const handOverAvailable = (hasAvailableMobileDevice === true && currentDeviceHasBrowser === false);

我知道只能使用 IOS 和 Android 手机进行切换,因此检查屏幕 + 互联网应该会检测到手机,但如果有超过 1 个其他设备可用,我不确定这是如何工作的。

检查屏幕设备和浏览器设备是否保证用户拥有具有这些功能的单个设备,或者当用户拥有多个设备时它是否可能返回 true?

【问题讨论】:

    标签: node.js actions-on-google


    【解决方案1】:

    conv.surface.capabilities 是特定设备的所有功能的数组,而conv.available.surfaces.capabilities 是用户在其所有设备上的所有功能的数组。

    当您从智能扬声器等设备过渡到手机等设备时,您会在每个有效表面上收到通知。基本上就是你的手机。

    检查网络浏览器和屏幕通常应与移动设备匹配,尽管功能框架是专门设计的,因此您无需直接进行设备类型检查。

    【讨论】:

    • 好的,很高兴知道,随着新的 Google 助理设备的添加,您知道是否有计划添加新功能?例如,手机和智能音箱的唯一区别是浏览器,但如果添加了具有浏览器功能的智能音箱,那么我将无法正确进行此切换。
    • 我无法确定未来会发生什么变化,但最近添加了交互式画布功能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多