# 本地闹钟
# 协议类型
消息类型 | 名称 | 必须实现 |
---|---|---|
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
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
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
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
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 | 是 |