# 本地闹钟

# 协议类型

消息类型 名称 必须实现
directive set_alarm
delete_alarm
event state_sync

说明

在请求时,context中包含alarm对象,则代表设备使用本地闹钟。如果想在设备本地保存闹钟列表,需要实现alarm类unios_directive。

在此之前需要考虑以下几个问题:

  • 实现本地闹钟需要设备本地将闹钟列表持久化保存,不能因为设备重启等原因造成设备闹钟列表丢失
  • 实现本地闹钟需要保证设备本地时间正确。UniOS 在接入大量厂商时发现很多芯片的时间钟不稳定,建议使用 system.ping 来保证设备系统时间的准确性
  • 实现本地闹钟需要在设备本地对设备闹钟进行一定的容错处理

注意

闹钟的设置、修改、删除和响铃,都必须使用状态同步(system.state_sync)来告知云端

# context

请求示例

"unios_context": {
  ...
  "alarm": {
    "version": "1.0",
    "local": [
      {
        "alarm_id": "xxxxx",
        "timestamp": 1558598737
      }
    ],
    "active": {
      "alarm_id": "xxxxx"
    }
  },
  ...
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
参数 类型 说明 必填
version String 模块版本,现在是1.0
local List 设备本地闹钟列表,如果没有,请传输空数组
local.alarm_id String 设备闹钟的唯一id
local.timestamp Long unix时间戳,单位:秒
active Object 正在活动的闹钟
active.alarm_id String 正在活动的闹钟的唯一id

# directive

设置闹钟
在设备发起recognize请求或状态同步之后,可能会得到一个闹钟指令。在收到这个unios_directive之后,需要根据信息在设备本地记录和设置闹钟。
回复示例

{
  "unios_directives": [
    ...,
    {
      "header": {
        "name": "alarm.set_alarm"
      },
      "payload": {
        "alarm_id": "xxxxx",
        "timestamp": 1558598737,
        "url": "https://www.UniOS.cn/example....2.m4a"
      }
    }
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
参数 类型 说明 必填
alarm_id String 闹钟的唯一id
timestamp Long unix时间戳,单位:秒
url String 铃声地址

删除闹钟
在设备发起recognize请求或状态同步之后,可能会得到一个闹钟指令。在收到这个unios_directive之后,需要根据信息在设备本地记录中删除对应alarm_id的闹钟。 回复示例

{
  "unios_directives": [
    ...,
    {
      "header": {
        "name": "alarm.delete_alarm"
      },
      "payload": {
        "alarm_id": "xxxxx",
      }
    }
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
参数 类型 说明 必填
alarm_id String 闹钟的唯一id

# event

状态同步
当本地闹钟时间到时,需要在闹钟开始响和结束响的时候将状态告知云端。 请求示例

{
  "unios_header": {...},
  "unios_context": {...},
  "unios_event": {
    "header": {
      "name": "alarm.state_sync",
      "message_id": "xxxxxxxx"
    },
    "payload": {
      "type": "STARTED",
      "alarm_id": "xxxxx"
    }
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
参数 类型 说明 必填
unios_header Object 构建的通用 unios_header
unios_context Object 构建的通用 unios_context
type String 状态类型,取值:
- STARTED:开始响铃
- STOPPED:响铃停止,包括自然响铃完成和用户操作(唤醒或按键)
alarm_id String 闹钟的唯一id