【发布时间】: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?
【问题讨论】: