Распознать тип устройства Alexa по запросу JSON - PullRequest
1 голос
/ 22 марта 2019

Я хочу определить, имеет ли устройство, использующее мое умение Alexa, экран или нет, чтобы я мог предоставить правильные ответы и включить Карты или Изображения и т. Д.

Я просмотрел Запрос и ответ JSON Reference и ожидается, что в объекте Context или System найдется что-то, что выделит устройства.

Из документов и моих собственных журналов испытаний отображается event.context.System.device.supportedInterfacesлибо быть пустым массивом, либо включать массив AudioPlayer.Нет ничего там для визуальных интерфейсов?

Другой вариант, который я подумал найти, - это разница в массиве event.context. Viewport.Есть ли способ узнать, какое устройство используется, сравнивая размеры и форму?

Справочник по Viewport и пример:

[Viewport] => Array (
            [experiences] => Array (
                   [0] => Array (
                         [arcMinuteWidth] => 144
                         [arcMinuteHeight] => 144
                         [canRotate] => 
                         [canResize] => 
                   )

             )

             [shape] => ROUND
             [pixelWidth] => 480
             [pixelHeight] => 480
             [dpi] => 160
             [currentPixelWidth] => 480
             [currentPixelHeight] => 480
             [touch] => Array (
                   [0] => SINGLE
             )
             [keyboard] => Array ()
)

Но я не могу найти свойства возможных устройств, которые соответствуют размерам Viewport.

Так есть ли у кого-нибудь решение для распознавания используемого устройства Alexa, в частности, чтобы узнать, имеет ли устройство встроенный экран или нет?

1 Ответ

1 голос
/ 23 марта 2019

После тестирования имеющихся у меня устройств я обнаружил, что для массива Viewport указано только , когда устройство имеет экран. Не нужно сравнивать Viewport элементов.

Чтобы определить, имеет ли входящий запрос Alexa прикрепленный экран, я просто делаю:

if (event.context.Viewport) {
    // device has a screen
}

ПРИМЕЧАНИЕ. Отправка карточек на любое устройство (экранное или нет) также будет отображаться в приложении Alexa. Поэтому после обнаружения экрана я отправляю карточку, которая будет отображаться на каждом ходу. И если обнаруживается отсутствие экрана, то я отправляю только случайную карту для пользователя, чтобы проверить его приложение Alexa, чтобы просмотреть карту там. Поэтому я был удивлен, увидев все карты, отображаемые на экране, а также залил приложение.

...