Действия на симуляторе Google не разделяют устройства вывода экрана - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь проверить свое действие в симуляторе действий Google. К сожалению, симулятор, похоже, не распознает разницу между поверхностью телефона и поверхностью интеллектуального динамика внутри симулятора.

Я пытался консоль войти в переменную screentest. В журналах и поверхность телефона и динамика показывают «true», что явно не правильно. Я также проверил в журнале данных «разговор». Оба выхода телефона и динамика содержат SCREEN_OUTPUT.

app.intent('Default Welcome Intent', (conv) => {
  let screentest = conv.available.surfaces.capabilities.has('actions.capability.SCREEN_OUTPUT')
  console.log(screentest)
  if (screentest === true) {
    conv.add('Text with screen')
  } else if (screentest === false) {
    conv.add('Text without screen')
  } else {
    conv.add('impossible')
  }
})

Ожидаемые результаты: при использовании поверхности динамика внутри симулятора вывод ассистента должен быть «Текст без экрана».

Фактические результаты: поверхность телефона и динамика внутри симулятора генерируют ответ: «Текст с экрана».

1 Ответ

0 голосов
/ 09 января 2019

Проблема в том, что вы не вполне проверяете поверхности правильно.

Сообщается о двух наборах возможностей:

  • Возможности, доступные на поверхности, которую использует пользователь в настоящее время. Если вы используете библиотеку действий на Google, они доступны, используя conv.surface.capabilties.has()
  • Возможности, доступные на любой поверхности , которую пользователь подключил к своей учетной записи. Они доступны с помощью conv.available.surfaces.capabilities.has(), если вы используете библиотеку actions-on-google.

В настоящее время вы используете второй, когда вам нужно проверить первый, чтобы увидеть, что в данный момент использует пользователь.

Вы захотите использовать второе, если есть что-то, что вы хотите отобразить, чтобы убедиться, что они справятся с этим, прежде чем предлагать вам переключиться на него.

...