雷鸟接口文档更新 2754/1 2754/head 2755/target/1 2756/target/1
authorluozheng <1732036298@qq.com>
Tue, 18 Nov 2025 02:20:03 +0000 (10:20 +0800)
committerluozheng <1732036298@qq.com>
Tue, 18 Nov 2025 02:20:03 +0000 (10:20 +0800)
code/sdk/zhihui/leiniao/设备API接口文档.md

index 10b9493..e5b4ff1 100644 (file)
@@ -1905,6 +1905,104 @@ WebSocket连接需要设备Token认证,有以下两种方式传递Token:
 - 发送间隔由服务端配置控制\r
 - 设备可以边接收边播放,实现流畅的播放体验\r
 \r
+#### 蓝牙状态上报 (BluetoothStatusReport)\r
+**命令描述**:客户端发送蓝牙状态上报,用于主动上报蓝牙连接状态变化\r
+**协议说明**:\r
+- 设备端蓝牙连接状态/耳机电量发生变化时,主动发送此命令上报状态\r
+- 支持的状态包括:连接中、连接成功、连接失败、已断开、解绑中、解绑失败、解绑成功\r
+- 服务端返回BluetoothStatusReportAck应答确认收到状态上报\r
+\r
+**消息格式**:\r
+```json\r
+{\r
+  "deviceId": "设备ID",\r
+  "timestamp": 1640995200,\r
+  "messageId": "消息ID",\r
+  "command": "BluetoothStatusReport",\r
+  "data": {\r
+    "bluetoothAddress": "蓝牙地址",\r
+    "bluetoothName": "蓝牙名称",\r
+    "batteryLevel": 80,\r
+    "bluetoothStatus": "CONNECTED",\r
+    "message": "蓝牙连接成功"\r
+  }\r
+}\r
+```\r
+\r
+**消息示例**:\r
+```json\r
+{\r
+  "deviceId": "DEVICE_001",\r
+  "timestamp": 1640995200,\r
+  "messageId": "bt_status_001",\r
+  "command": "BluetoothStatusReport",\r
+  "data": {\r
+    "bluetoothAddress": "AA:BB:CC:DD:EE:FF",\r
+    "bluetoothName": "AirPods Pro",\r
+    "batteryLevel": 80,\r
+    "bluetoothStatus": "CONNECTED",\r
+    "message": "蓝牙连接成功"\r
+  }\r
+}\r
+```\r
+\r
+**data字段说明**:\r
+\r
+| 字段名 | 类型 | 描述 |\r
+|--------|------|------|\r
+| bluetoothAddress | String | 蓝牙设备MAC地址 |\r
+| bluetoothName | String | 蓝牙设备名称 |\r
+| batteryLevel | Integer | 电池电量百分比,范围0-100 |\r
+| bluetoothStatus | String | 蓝牙连接状态,枚举值见下方说明 |\r
+| message | String | 状态上报消息,用于描述状态上报的原因 |\r
+\r
+**bluetoothStatus字段枚举值**:\r
+\r
+| 枚举值 | 描述 |\r
+|--------|------|\r
+| CONNECTED | 蓝牙已连接 |\r
+| DISCONNECTED | 蓝牙已断开 |\r
+| CONNECTING | 蓝牙连接中 |\r
+| CONNECT_FAILED | 蓝牙连接失败 |\r
+| UNBINDING | 蓝牙解绑中 |\r
+| UNBIND_FAILED | 蓝牙解绑失败 |\r
+| UNBIND_SUCCESS | 蓝牙解绑成功 |\r
+\r
+**使用场景**:\r
+1. **连接成功**:设备完成蓝牙连接后,上报CONNECTED状态和消息\r
+2. **连接失败**:设备无法连接蓝牙设备时,上报CONNECT_FAILED状态和消息\r
+3. **断开连接**:蓝牙设备断开连接时,上报DISCONNECTED状态和消息\r
+4. **解绑成功**:设备完成蓝牙解绑后,上报UNBIND_SUCCESS状态和消息\r
+5. **解绑失败**:设备无法解绑蓝牙设备时,上报UNBIND_FAILED状态和消息\r
+6. **电量变化**:蓝牙耳机电量变化时,上报最新的batteryLevel,范围0-100和消息\r
+\r
+**服务端响应**:\r
+服务端收到蓝牙状态上报后,会通过WebSocket推送BluetoothStatusReportAck消息:\r
+\r
+```json\r
+{\r
+  "deviceId": "DEVICE_001",\r
+  "timestamp": 1640995201,\r
+  "messageId": "bt_status_ack_001",\r
+  "command": "BluetoothStatusReportAck",\r
+  "data": {\r
+    "bluetoothAddress": "AA:BB:CC:DD:EE:FF",\r
+    "bluetoothName": "AirPods Pro",\r
+    "success": true,\r
+    "message": "蓝牙状态上报处理完成"\r
+  }\r
+}\r
+```\r
+\r
+**服务端响应data字段说明**:\r
+\r
+| 字段名 | 类型 | 描述 |\r
+|--------|------|------|\r
+| bluetoothAddress | String | 蓝牙设备MAC地址 |\r
+| bluetoothName | String | 蓝牙设备名称 |\r
+| success | Boolean | 是否成功处理状态上报 |\r
+| message | String | 处理结果描述信息 |\r
+\r
 ### 客户端应答消息 (ACK Messages)\r
 \r
 客户端在收到服务端推送的某些命令后,需要发送应答消息(ACK)来确认命令的接收和执行状态。所有 ACK 消息遵循统一的消息格式。\r
@@ -2427,6 +2525,102 @@ WebSocket连接需要设备Token认证,有以下两种方式传递Token:
 - 失败可能原因:存储空间不足、网络异常、版本校验失败等\r
 - 升级成功后设备会自动重启,重启后以新版本运行\r
 \r
+#### 蓝牙连接应答 (BluetoothConnectAck)\r
+**命令描述**:设备端对蓝牙连接命令的应答,确认蓝牙连接操作的执行状态\r
+\r
+**消息格式**:\r
+```json\r
+{\r
+  "deviceId": "设备ID",\r
+  "timestamp": 1640995200,\r
+  "messageId": "消息ID",\r
+  "command": "BluetoothConnectAck",\r
+  "data": {\r
+    "success": true,\r
+    "message": "蓝牙连接中"\r
+  }\r
+}\r
+```\r
+\r
+**消息示例**:\r
+```json\r
+{\r
+  "deviceId": "DEVICE_001",\r
+  "timestamp": 1640995200,\r
+  "messageId": "ack_bt_connect_001",\r
+  "command": "BluetoothConnectAck",\r
+  "data": {\r
+    "success": true,\r
+    "message": "蓝牙连接中"\r
+  }\r
+}\r
+```\r
+\r
+**data字段说明**:\r
+\r
+| 字段名 | 类型 | 描述 |\r
+|--------|------|------|\r
+| success | Boolean | 是否成功接收并开始处理蓝牙连接命令 |\r
+| message | String | 处理结果描述信息,如"蓝牙连接中" |\r
+\r
+**协议说明**:\r
+- 设备收到BluetoothConnect命令后,开始执行蓝牙连接操作,并发送此应答\r
+- success为true表示设备开始处理连接请求,false表示无法处理(如蓝牙模块异常)\r
+- 此应答仅表示设备接收到命令并开始处理,不代表蓝牙连接最终结果\r
+- 蓝牙连接的最终状态通过BluetoothStatusReport命令上报\r
+- 失败可能原因:蓝牙模块故障、蓝牙地址无效、设备忙碌等\r
+\r
+#### 蓝牙解绑应答 (BluetoothUnbindAck)\r
+**命令描述**:设备端对蓝牙解绑命令的应答,确认蓝牙解绑操作的执行状态\r
+\r
+**消息格式**:\r
+```json\r
+{\r
+  "deviceId": "设备ID",\r
+  "timestamp": 1640995200,\r
+  "messageId": "消息ID",\r
+  "command": "BluetoothUnbindAck",\r
+  "data": {\r
+    "bluetoothAddress": "蓝牙地址",\r
+    "bluetoothName": "蓝牙名称",\r
+    "success": true,\r
+    "message": "蓝牙解绑中"\r
+  }\r
+}\r
+```\r
+\r
+**消息示例**:\r
+```json\r
+{\r
+  "deviceId": "DEVICE_001",\r
+  "timestamp": 1640995200,\r
+  "messageId": "ack_bt_unbind_001",\r
+  "command": "BluetoothUnbindAck",\r
+  "data": {\r
+    "bluetoothAddress": "AA:BB:CC:DD:EE:FF",\r
+    "bluetoothName": "AirPods Pro",\r
+    "success": true,\r
+    "message": "蓝牙解绑中"\r
+  }\r
+}\r
+```\r
+\r
+**data字段说明**:\r
+\r
+| 字段名 | 类型 | 描述 |\r
+|--------|------|------|\r
+| bluetoothAddress | String | 蓝牙设备MAC地址 |\r
+| bluetoothName | String | 蓝牙设备名称 |\r
+| success | Boolean | 是否成功接收并开始处理蓝牙解绑命令 |\r
+| message | String | 处理结果描述信息,如"蓝牙解绑中" |\r
+\r
+**协议说明**:\r
+- 设备收到BluetoothUnbind命令后,开始执行蓝牙解绑操作,并发送此应答\r
+- success为true表示设备开始处理解绑请求,false表示无法处理(如蓝牙设备未连接)\r
+- 此应答仅表示设备接收到命令并开始处理,不代表蓝牙解绑最终结果\r
+- 蓝牙解绑的最终状态通过BluetoothStatusReport命令上报\r
+- 失败可能原因:蓝牙设备未连接、蓝牙地址不匹配、设备忙碌等\r
+\r
 ### 服务端业务消息\r
 \r
 服务端通过WebSocket连接推送业务消息给设备端,消息采用JSON格式,消息结构如下:\r
@@ -3056,6 +3250,114 @@ WebSocket连接需要设备Token认证,有以下两种方式传递Token:
 7. 校验通过后执行升级并重启\r
 8. 重启后以新版本重新获取设备Token\r
 \r
+#### 17. 蓝牙连接 (BluetoothConnect)\r
+**命令描述**:通知设备连接指定的蓝牙设备\r
+**消息示例**:\r
+```json\r
+{\r
+  "deviceId": "DEVICE_001",\r
+  "timestamp": 1640995200,\r
+  "messageId": "msg_014",\r
+  "command": "BluetoothConnect",\r
+  "data": {\r
+    "userId": "user_001",\r
+    "bluetoothAddress": "AA:BB:CC:DD:EE:FF"\r
+  }\r
+}\r
+```\r
+\r
+**data字段说明**:\r
+\r
+| 字段名 | 类型 | 描述 |\r
+|--------|------|------|\r
+| userId | String | 用户ID,标识发起连接操作的用户 |\r
+| bluetoothAddress | String | 要连接的蓝牙设备MAC地址,保留字段,暂时无用 |\r
+\r
+**设备处理说明**:\r
+- 设备收到此命令后,开始搜索和连接蓝牙设备\r
+- 连接过程中发送BluetoothConnectAck应答确认收到命令\r
+- 连接结果通过BluetoothStatusReport命令上报\r
+- 如果连接成功,上报CONNECTED状态和蓝牙耳机电量\r
+- 如果连接失败,上报CONNECT_FAILED状态和错误信息\r
+\r
+**连接流程**:\r
+1. 用户在小程序端发起连接蓝牙耳机操作\r
+2. 服务器通过WebSocket推送BluetoothConnect命令到设备端\r
+3. 设备端收到命令,返回BluetoothConnectAck应答\r
+4. 设备端执行搜索和蓝牙连接操作\r
+5. 连接完成后,设备端发送BluetoothStatusReport上报最终状态\r
+6. 小程序端显示连接状态和蓝牙耳机电量\r
+\r
+#### 18. 蓝牙解绑 (BluetoothUnbind)\r
+**命令描述**:通知设备解绑指定的蓝牙设备\r
+**消息示例**:\r
+```json\r
+{\r
+  "deviceId": "DEVICE_001",\r
+  "timestamp": 1640995200,\r
+  "messageId": "msg_015",\r
+  "command": "BluetoothUnbind",\r
+  "data": {\r
+    "userId": "user_001",\r
+    "bluetoothAddress": "AA:BB:CC:DD:EE:FF",\r
+    "bluetoothName": "AirPods Pro"\r
+  }\r
+}\r
+```\r
+\r
+**data字段说明**:\r
+\r
+| 字段名 | 类型 | 描述 |\r
+|--------|------|------|\r
+| userId | String | 用户ID,标识发起解绑操作的用户 |\r
+| bluetoothAddress | String | 要解绑的蓝牙设备MAC地址 |\r
+| bluetoothName | String | 蓝牙设备名称 |\r
+\r
+**设备处理说明**:\r
+- 设备收到此命令后,开始解绑指定的蓝牙设备\r
+- 解绑过程中发送BluetoothUnbindAck应答确认收到命令\r
+- 解绑结果通过BluetoothStatusReport命令上报\r
+- 如果解绑成功,上报UNBIND_SUCCESS状态\r
+- 如果解绑失败,上报UNBIND_FAILED状态\r
+\r
+**解绑流程**:\r
+1. 用户在小程序端发起解绑蓝牙耳机操作\r
+2. 服务器通过WebSocket推送BluetoothUnbind命令到设备端\r
+3. 设备端收到命令,返回BluetoothUnbindAck应答\r
+4. 设备端执行蓝牙解绑操作\r
+5. 解绑完成后,设备端发送BluetoothStatusReport上报最终状态\r
+6. 小程序端显示解绑状态\r
+\r
+#### 19. 蓝牙状态上报应答 (BluetoothStatusReportAck)\r
+**命令描述**:服务端对设备蓝牙状态上报的应答,确认收到状态上报\r
+**消息示例**:\r
+```json\r
+{\r
+  "deviceId": "DEVICE_001",\r
+  "timestamp": 1640995200,\r
+  "messageId": "msg_016",\r
+  "command": "BluetoothStatusReportAck",\r
+  "data": {\r
+    "bluetoothAddress": "AA:BB:CC:DD:EE:FF",\r
+    "bluetoothName": "AirPods Pro",\r
+    "success": true,\r
+    "message": "蓝牙状态上报处理完成"\r
+  }\r
+}\r
+```\r
+\r
+**data字段说明**:\r
+\r
+| 字段名 | 类型 | 描述 |\r
+|--------|------|------|\r
+| bluetoothAddress | String | 蓝牙设备MAC地址 |\r
+| bluetoothName | String | 蓝牙设备名称 |\r
+| success | Boolean | 是否成功处理状态上报 |\r
+| message | String | 处理结果描述信息 |\r
+\r
+**服务端处理说明**:\r
+- 服务端收到BluetoothStatusReport命令后,更新设备缓存中的蓝牙连接信息,并返回BluetoothStatusReportAck应答给设备端\r
+\r
 \r
 ## 7. 表情管理接口\r
 \r