基于 HID 协议的扩展功能指令定义方案

基于 HID 协议的扩展功能指令定义方案

前言

蓝牙HID是蓝牙联盟规定的,适用于键盘鼠标等设备标准交互规范,不同厂家的蓝牙设备可以互联互通的基础,本文归纳总结了蓝牙HID的进阶规范协议,适用于当HID协议不能满足要求时,如何扩展指令集及一些扩展功能。

目录

核心设计原则

一、HID 报告 ID 与格式规划

基础编码规则

二、扩展功能 HID 指令定义

1. 上下左右翻页(复用标准指令,兼容性最优)

2. 主流 APP 操控(自定义 APP 指令 + 标准指令复用)

3. 直播(自定义功能指令)

4. 刷短视频(标准 + 自定义指令)

5. 点赞短视频(标准 + 自定义指令)

6. 远程拍摄 / 拍照(自定义功能指令)

7. 播放音乐(复用媒体键 + 自定义指令)

8. 车机操作(自定义功能指令)

9. 会议演讲(标准 + 自定义指令)

10. 家居控制(自定义功能指令)

11. 多媒体教室(标准 + 自定义指令)

三、自定义 HID 报告描述符示例(关键部分)

四、实现注意事项

总结

核心设计原则

  1. 兼容性优先:通用功能(翻页、音乐播放等)复用 USB HID 标准键值 / 鼠标指令,保证跨设备 / 系统兼容;
  2. 自定义扩展:非标功能(APP 专属操控、远程拍摄、家居控制等)通过自定义 HID 报告扩展,分配独立报告 ID 避免冲突;
  3. 精简高效:采用 BLE HID 模式,报告长度控制在 8 字节内,平衡低功耗与低延迟;
  4. 分层指令:区分「通用指令」(跨场景复用)和「专属指令」(单 APP / 场景定制)。

一、HID 报告 ID 与格式规划

报告 ID

报告类型

用途

数据格式(字节)

0x01

键盘报告

通用键盘模拟(翻页、点赞、音乐等)

[0x01][修饰键][保留][K1][K2][K3][K4][K5][K6](标准 8 字节)

0x02

鼠标报告

翻页、界面滑动、点击

[0x02][按键位][X 位移][Y 位移][滚轮][保留](6 字节)

0x03

自定义 APP 指令

主流 APP 专属操控

[0x03][APP 编号][操作指令][参数 1][参数 2][保留](6 字节)

0x04

自定义功能指令

拍摄、直播、车机等

[0x04][功能类型][操作指令][参数 1][参数 2][保留](6 字节)

基础编码规则

  • APP 编号(1 字节):0x01 = 无他相机、0x02=B612、0x03 = 美颜秀秀、0x04 = 轻颜、0x05=Faceu、0x06 = 微视、0x07 = 小红书、0x08 = 美拍、0x09 = 抖音、0x0A = 抖音火山版、0x0B=YouTube、0x0C = 醒图、0x0D = 剪映、0x0E = 西瓜视频、0x0F = 美图秀秀;
  • 功能类型(1 字节):0x01 = 直播、0x02 = 短视频、0x03 = 拍摄、0x04 = 音乐、0x05 = 车机、0x06 = 会议、0x07 = 家居、0x08 = 多媒体教室;
  • 操作指令(1 字节):各场景专属编码,见下文分模块定义。

二、分功能 HID 指令定义

1. 上下左右翻页(复用标准指令,兼容性最优)

操作

指令类型

报告 ID

具体指令值

向上翻页

键盘报告

0x01

[0x01][0x00][0x00][0x4B][0x00][0x00][0x00][0x00][0x00](PageUp 键,0x4B)

向下翻页

键盘报告

0x01

[0x01][0x00][0x00][0x4E][0x00][0x00][0x00][0x00][0x00](PageDown 键,0x4E)

向左翻页

键盘报告

0x01

[0x01][0x00][0x00][0x4D][0x00][0x00][0x00][0x00][0x00](Left 键,0x4D)

向右翻页

键盘报告

0x01

[0x01][0x00][0x00][0x4F][0x00][0x00][0x00][0x00][0x00](Right 键,0x4F)

快速滑动翻页

鼠标报告

0x02

向上:[0x02][0x00][0x00][0x00][0x7F][0x00](滚轮 + 127)向下:[0x02][0x00][0x00][0x00][0x80][0x00](滚轮 - 128)

2. 主流 APP 操控(自定义 APP 指令 + 标准指令复用)

2.1 通用 APP 操作(所有 APP 复用)

通用操作

指令类型

报告 ID

具体指令值

返回上一级

键盘报告

0x01

[0x01][0x00][0x00][0x28][0x00][0x00][0x00][0x00][0x00](ESC 键,0x28)

确认 / 选中

键盘报告

0x01

[0x01][0x00][0x00][0x28][0x00][0x00][0x00][0x00][0x00](Enter 键,0x28)

切换前后置摄像头

自定义 APP 指令

0x03

[0x03][APP 编号][0x01][0x00][0x00][0x00](0x01 = 切换摄像头)

调节美颜强度

自定义 APP 指令

0x03

[0x03][APP 编号][0x02][强度值][0x00][0x00](强度值:0x00-0x64,0-100)

切换滤镜

自定义 APP 指令

0x03

[0x03][APP 编号][0x03][滤镜编号][0x00][0x00](滤镜编号:0x01-0xFF)

保存 / 导出作品

自定义 APP 指令

0x03

[0x03][APP 编号][0x04][0x00][0x00][0x00](0x04 = 保存)

切换全屏

键盘报告

0x01

[0x01][0x00][0x00][0x32][0x00][0x00][0x00][0x00][0x00](F11 键,0x32)

2.2 各 APP 专属操作(自定义 APP 指令)

APP 名称

专属操作

报告 ID

具体指令值

无他相机 (0x01)

开启瘦脸

0x03

[0x03][0x01][0x05][强度值][0x00][0x00](0x05 = 瘦脸,强度 0x00-0x64)

B612(0x02)

开启萌系特效

0x03

[0x03][0x02][0x06][特效编号][0x00][0x00](0x06 = 萌系特效,编号 0x01-0x10)

抖音 (0x09)

切换草稿箱

0x03

[0x03][0x09][0x07][0x00][0x00][0x00](0x07 = 草稿箱)

YouTube(0x0B)

调节播放速度

0x03

[0x03][0x0B][0x08][速度值][0x00][0x00](速度值:0x01=0.5x,0x02=1x,0x03=1.5x)

剪映 (0x0D)

分割视频

0x03

[0x03][0x0D][0x09][0x00][0x00][0x00](0x09 = 分割)

醒图 (0x0C)

调节滤镜透明度

0x03

[0x03][0x0C][0x0A][透明度][0x00][0x00](透明度 0x00-0x64)

3. 直播(自定义功能指令)

直播操作

报告 ID

具体指令值

开启 / 关闭直播

0x04

[0x04][0x01][0x01][0x01][0x00][0x00](0x01 = 开启,0x00 = 关闭)

切换直播镜头

0x04

[0x04][0x01][0x02][镜头编号][0x00][0x00](0x01 = 广角,0x02 = 特写)

开启直播美颜

0x04

[0x04][0x01][0x03][强度值][0x00][0x00](强度 0x00-0x64)

禁言 / 解禁观众

0x04

[0x04][0x01][0x04][用户 ID 低字节][用户 ID 高字节][0x00]

切换直播背景音乐

0x04

[0x04][0x01][0x05][音乐编号][0x00][0x00]

4. 刷短视频(标准 + 自定义指令)

刷短视频操作

指令类型

报告 ID

具体指令值

上一个短视频

键盘报告

0x01

[0x01][0x00][0x00][0x4B][0x00][0x00][0x00][0x00][0x00](PageUp)

下一个短视频

键盘报告

0x01

[0x01][0x00][0x00][0x4E][0x00][0x00][0x00][0x00][0x00](PageDown)

暂停 / 播放短视频

键盘报告

0x01

[0x01][0x00][0x00][0x2C][0x00][0x00][0x00][0x00][0x00](Space 空格,0x2C)

倍速播放

自定义功能指令

0x04

[0x04][0x02][0x01][倍速值][0x00][0x00](0x01=1x,0x02=1.5x,0x03=2x)

5. 点赞短视频(标准 + 自定义指令)

点赞操作

指令类型

报告 ID

具体指令值

点赞(通用)

键盘报告

0x01

[0x01][0x00][0x00][0x08][0x00][0x00][0x00][0x00][0x00](数字 8 / 点赞键,0x08)

取消点赞

键盘报告

0x01

[0x01][0x00][0x00][0x08][0x00][0x00][0x00][0x00][0x00](再次发送 8 键)

抖音专属点赞

自定义功能指令

0x04

[0x04][0x02][0x02][0x01][0x00][0x00](0x02 = 点赞,0x01 = 确认)

6. 远程拍摄 / 拍照(自定义功能指令)

拍摄操作

报告 ID

具体指令值

拍照(单张)

0x04

[0x04][0x03][0x01][0x01][0x00][0x00](0x01 = 拍照,0x01 = 单张)

连拍

0x04

[0x04][0x03][0x01][0x02][连拍张数][0x00](连拍张数 0x01-0x64)

录像开始

0x04

[0x04][0x03][0x02][0x01][0x00][0x00](0x02 = 录像,0x01 = 开始)

录像结束

0x04

[0x04][0x03][0x02][0x00][0x00][0x00](0x00 = 结束)

延时拍摄

0x04

[0x04][0x03][0x03][延时秒数][0x00][0x00](延时秒数 0x03=3s,0x05=5s,0x0A=10s)

7. 播放音乐(复用媒体键 + 自定义指令)

音乐操作

指令类型

报告 ID

具体指令值

播放 / 暂停

键盘报告

0x01

[0x01][0xE0][0x00][0x00][0x00][0x00][0x00][0x00][0x00](媒体播放 / 暂停,0xE0 修饰键)

上一曲

键盘报告

0x01

[0x01][0xE1][0x00][0x00][0x00][0x00][0x00][0x00][0x00](媒体上一曲,0xE1)

下一曲

键盘报告

0x01

[0x01][0xE2][0x00][0x00][0x00][0x00][0x00][0x00][0x00](媒体下一曲,0xE2)

调节音量 +

键盘报告

0x01

[0x01][0xE3][0x00][0x00][0x00][0x00][0x00][0x00][0x00](媒体音量 +,0xE3)

调节音量 -

键盘报告

0x01

[0x01][0xE4][0x00][0x00][0x00][0x00][0x00][0x00][0x00](媒体音量 -,0xE4)

切换播放模式

自定义功能指令

0x04

[0x04][0x04][0x01][模式值][0x00][0x00](0x01 = 单曲循环,0x02 = 随机,0x03 = 顺序)

8. 车机操作(自定义功能指令)

车机操作

报告 ID

具体指令值

导航目的地切换

0x04

[0x04][0x05][0x01][地址编号][0x00][0x00](地址编号 0x01-0xFF)

空调温度 +

0x04

[0x04][0x05][0x02][0x01][0x00][0x00](0x01=+1℃)

空调温度 -

0x04

[0x04][0x05][0x02][0x00][0x00][0x00](0x00=-1℃)

车窗升降

0x04

[0x04][0x05][0x03][车窗编号][升降值][0x00](车窗编号:0x01 = 主驾,0x02 = 副驾;升降值:0x01 = 升,0x00 = 降)

车机切歌

0x04

[0x04][0x05][0x04][0x01][0x00][0x00](0x01 = 下一曲,0x00 = 上一曲)

9. 会议演讲(标准 + 自定义指令)

会议操作

指令类型

报告 ID

具体指令值

会议翻页

键盘报告

0x01

向上:[0x01][0x00][0x00][0x4B][0x00][0x00][0x00][0x00][0x00]向下:[0x01][0x00][0x00][0x4E][0x00][0x00][0x00][0x00][0x00]

静音 / 解除静音

自定义功能指令

0x04

[0x04][0x06][0x01][0x01][0x00][0x00](0x01 = 静音,0x00 = 解除)

开启 / 关闭摄像头

自定义功能指令

0x04

[0x04][0x06][0x02][0x01][0x00][0x00](0x01 = 开启,0x00 = 关闭)

共享屏幕

自定义功能指令

0x04

[0x04][0x06][0x03][0x01][0x00][0x00](0x01 = 开启,0x00 = 关闭)

会议录制

自定义功能指令

0x04

[0x04][0x06][0x04][0x01][0x00][0x00](0x01 = 开始,0x00 = 结束)

10. 家居控制(自定义功能指令)

家居操作

报告 ID

具体指令值

灯光开关

0x04

[0x04][0x07][0x01][设备 ID][开关值][0x00](设备 ID:0x01-0xFF;开关值:0x01 = 开,0x00 = 关)

灯光亮度调节

0x04

[0x04][0x07][0x02][设备 ID][亮度值][0x00](亮度值 0x00-0x64)

窗帘开合

0x04

[0x04][0x07][0x03][设备 ID][开合值][0x00](开合值:0x01 = 开,0x00 = 合,0x02 = 暂停)

空调模式切换

0x04

[0x04][0x07][0x04][设备 ID][模式值][0x00](模式值:0x01 = 制冷,0x02 = 制热,0x03 = 送风)

11. 多媒体教室(标准 + 自定义指令)

教室操作

指令类型

报告 ID

具体指令值

投影开关

自定义功能指令

0x04

[0x04][0x08][0x01][0x01][0x00][0x00](0x01 = 开,0x00 = 关)

投影信号切换

自定义功能指令

0x04

[0x04][0x08][0x02][信号源编号][0x00][0x00](0x01 = 电脑,0x02 = 平板,0x03 = 手机)

音量调节

键盘报告

0x01

音量 +:[0x01][0xE3][0x00][0x00][0x00][0x00][0x00][0x00][0x00]音量 -:[0x01][0xE4][0x00][0x00][0x00][0x00][0x00][0x00][0x00]

课件翻页

键盘报告

0x01

向上:[0x01][0x00][0x00][0x4B][0x00][0x00][0x00][0x00][0x00]向下:[0x01][0x00][0x00][0x4E][0x00][0x00][0x00][0x00][0x00]

屏幕标注

自定义功能指令

0x04

[0x04][0x08][0x03][标注颜色][粗细值][0x00](颜色:0x01 = 红,0x02 = 蓝;粗细:0x01-0x05)

三、自定义 HID 报告描述符示例(关键部分)

针对自定义 APP 指令(ID=0x03)和自定义功能指令(ID=0x04),需扩展报告描述符,核心片段如下:

// 自定义APP指令报告(ID=0x03)

0x05, 0xFF,        // Usage Page (Vendor Defined 0xFF00)

0x09, 0x03,        // Usage (0x03 = APP Control)

0xA1, 0x01,        // Collection (Application)

0x85, 0x03,        // Report ID (0x03)

0x75, 0x08,        // Report Size (8 bits)

0x95, 0x05,        // Report Count (5 bytes: APP编号+操作指令+参数1+参数2+保留)

0x09, 0x00,        // Usage (Undefined)

0x81, 0x02,        // Input (Data, Var, Abs)

0xC0,              // End Collection

// 自定义功能指令报告(ID=0x04)

0x05, 0xFF,        // Usage Page (Vendor Defined 0xFF00)

0x09, 0x04,        // Usage (0x04 = Function Control)

0xA1, 0x01,        // Collection (Application)

0x85, 0x04,        // Report ID (0x04)

0x75, 0x08,        // Report Size (8 bits)

0x95, 0x05,        // Report Count (5 bytes: 功能类型+操作指令+参数1+参数2+保留)

0x09, 0x00,        // Usage (Undefined)

0x81, 0x02,        // Input (Data, Var, Abs)

0xC0,              // End Collection

四、实现注意事项

  1. 兼容性适配
    • 标准键盘 / 鼠标指令无需适配,系统原生支持;
    • 自定义指令需在对应 APP 端开发适配层(如通过 HID 监听工具解析自定义报告,映射为 APP 内操作);
  1. 低功耗优化
    • 无操作时停止发送报告,进入 BLE HID 低功耗模式;
    • 自定义报告长度控制在 6 字节内,减少传输功耗;
  1. 指令消抖
    • 按键类指令添加 10-30ms 消抖,避免重复触发;
  1. 多设备兼容
    • 车机 / 家居控制需兼容不同品牌设备,通过设备 ID 区分;
    • APP 操控需适配 iOS/Android 系统差异(如 iOS 对自定义 HID 报告权限更严格,优先复用标准键);
  1. 权限处理
    • 远程拍摄 / 车机 / 家居控制需获取对应设备的操作权限(如相机权限、车机蓝牙权限)。

总结

本方案通过「标准 HID 指令复用 + 自定义 HID 报告扩展」的方式,覆盖所有 11 类功能需求:通用场景(翻页、音乐、点赞)复用标准键盘 / 鼠标指令保证兼容性,非标场景(APP 专属操控、直播、车机、家居)通过自定义 HID 报告实现专属指令,同时兼顾低功耗和跨设备适配性。实际落地时,需针对不同系统 / APP 补充适配层,将自定义 HID 报告解析为具体操作。

获取更多蓝牙知识文章,有想法请在评论区留言!敬请关注!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值