Google 智能家居如何确定 action.devices.commands.selectChannel 的 channelNumber?

问题描述

  1. 创建了 Google 智能家居操作。
  2. 实现了设备: 一种。 deviceType = action.devices.types.SETTOP 湾deviceTrait = action.devices.traits.Channel
  3. 设备已成功发现并添加到 Google Home 应用的 Homegraph。
  4. 用户发送命令:“Ok Google,更改为 ESPN”
  5. 在履行 URL 中接收以下 json:
    {
      "requestId": "[RequestId GUID]","inputs": [{
        "intent": "action.devices.EXECUTE","payload": {
          "commands": [{
            "devices": [{
              "id": "[SettopBox device Id]"
            }],"execution": [{
              "command": "action.devices.commands.selectChannel","params": {
                "channelCode": "espn","channelName": "ESPN","channelNumber": "206"
              }
            }]
          }]
        }
      }]
    }

问题:

  1. Google 智能家居如何确定“ESPN”的“channelNumber”值?用户的命令是“Ok Google,更改为“ESPN”。这不包含有关频道号的任何信息。
  2. 如果提供者是自动设置的,Google Home 或 Google 助理中是否有设置可以更改此提供者?

解决方法

在 SYNC 请求中提供了 Channel trait 的频道编号以及任何相关标签。

{
  "availableChannels": [
    {
      "key": "ktvu2","names": [
        "Fox","KTVU"
      ],"number": "2"
    },{
      "key": "abc1","names": [
        "ABC","ABC East"
      ],"number": "4-11"
    }
  ]
}

如代码段所示,频道号来自服务。这可能取决于如何确定这些数字的集成开发人员,无论是来自有线电视提供商还是通过无线方式。该字段是可选的,因此没有频道号的服务仍然可以通过说出其名称来工作。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...