说明
使用 chrome.hid
API 与已连接的 HID 设备交互。此 API 支持从应用上下文访问 HID 操作。使用此 API,应用可用作硬件设备的驱动程序。系统会通过设置 runtime.lastError
并执行函数的常规回调来报告此 API 生成的错误。在这种情况下,回调的常规参数将未定义。
权限
hid
类型
DeviceFilter
属性
-
productId
数字可选
设备产品 ID,仅在供应商 ID 匹配时才勾选。
-
使用量
数字可选
HID 用途标识符,仅当 HID 用途页面匹配时检查。
-
usagePage
数字可选
HID 用途页面标识符。
-
vendorId
数字可选
设备供应商 ID。
GetDevicesOptions
属性
-
过滤条件
DeviceFilter[] 可选
系统将返回与任意指定过滤条件相匹配的设备。如果过滤器列表为空,系统将返回应用有权使用的所有设备。
-
productId
数字可选
已废弃相当于设置
DeviceFilter.productId
。 -
vendorId
数字可选
已废弃相当于设置
DeviceFilter.vendorId
。
HidCollectionInfo
属性
-
reportIds
数值 []
属于集合及其子级的报告 ID。
-
使用量
number
页面定义的用量标识符。
-
usagePage
number
HID 用途页面标识符。
HidConnectInfo
属性
-
connectionId
number
用于在所有其他函数中标识此连接的不透明 ID。
HidDeviceInfo
属性
-
收藏集
此设备报告描述符中的顶级集合。
-
deviceId
number
不透明的设备 ID。
-
maxFeatureReportSize
number
顶级集合的特征报告大小上限。
-
maxInputReportSize
number
顶级集合的输入报告大小上限。
-
maxOutputReportSize
number
顶级集合的输出报告大小上限。
-
productId
number
产品 ID。
-
productName
string
Chrome 46 及更高版本从设备中读取的产品名称(如果有)。
-
reportDescriptor
ArrayBuffer
原始设备报告描述符(在 Windows 上不可用)。
-
serialNumber
string
Chrome 46 及更高版本从设备读取的序列号(如果有)。
-
vendorId
number
供应商 ID。
方法
connect()
chrome.hid.connect(
deviceId: number,
callback?: function,
)
打开与 HID 设备的连接以进行通信。
参数
-
deviceId
number
要打开的设备的
HidDeviceInfo.deviceId
。 -
callback
函数(可选)
callback
参数如下所示:(connection: HidConnectInfo) => void
返回
-
Promise<HidConnectInfo>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
disconnect()
chrome.hid.disconnect(
connectionId: number,
callback?: function,
)
断开与设备的连接。调用此函数后在设备上调用操作是安全的,但没有效果。
参数
-
connectionId
number
connect
返回的connectionId
。 -
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
Promise<void>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
getDevices()
chrome.hid.getDevices(
options: GetDevicesOptions,
callback?: function,
)
枚举连接的 HID 设备。
参数
-
要在目标设备上搜索的属性。
-
callback
函数(可选)
callback
参数如下所示:(devices: HidDeviceInfo[]) => void
-
设备
-
返回
-
Promise<HidDeviceInfo[]>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
receive()
chrome.hid.receive(
connectionId: number,
callback: function,
)
从设备接收下一份输入报告。
参数
-
connectionId
number
connect
返回的connectionId
。 -
callback
功能
callback
参数如下所示:(reportId: number, data: ArrayBuffer) => void
-
reportId
number
报告 ID 或
0
(如果没有)。 -
data
ArrayBuffer
系统会移除报告数据,报告 ID 前缀(如果有)。
-
receiveFeatureReport()
chrome.hid.receiveFeatureReport(
connectionId: number,
reportId: number,
callback?: function,
)
请求设备提供功能报告。
参数
-
connectionId
number
connect
返回的connectionId
。 -
reportId
number
报告 ID,或
0
(如果没有)。 -
callback
函数(可选)
callback
参数如下所示:(data: ArrayBuffer) => void
-
data
ArrayBuffer
报告数据,包括报告 ID 前缀(如果设备发送了报告 ID 前缀)。
-
返回
-
Promise<ArrayBuffer>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
send()
chrome.hid.send(
connectionId: number,
reportId: number,
data: ArrayBuffer,
callback?: function,
)
向设备发送输出报告。
注意:请勿在 data
中添加报告 ID 前缀。如有必要,系统会添加该网址。
参数
-
connectionId
number
connect
返回的connectionId
。 -
reportId
number
要使用的报告 ID,或
0
(如果没有)。 -
data
ArrayBuffer
报告数据。
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
Promise<void>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
sendFeatureReport()
chrome.hid.sendFeatureReport(
connectionId: number,
reportId: number,
data: ArrayBuffer,
callback?: function,
)
向设备发送功能报告。
注意:请勿在 data
中添加报告 ID 前缀。如有必要,系统会添加该网址。
参数
-
connectionId
number
connect
返回的connectionId
。 -
reportId
number
要使用的报告 ID,或
0
(如果没有)。 -
data
ArrayBuffer
报告数据。
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
Promise<void>
Chrome 117 及更高版本只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。
活动
onDeviceAdded
chrome.hid.onDeviceAdded.addListener(
callback: function,
)
将设备添加到系统时生成的事件。系统只会向有权访问设备的应用和扩展程序广播事件。可能是在用户安装时或在用户接受可选权限时授予的(请参阅 permissions.request
)。
参数
-
callback
功能
callback
参数如下所示:(device: HidDeviceInfo) => void
onDeviceRemoved
chrome.hid.onDeviceRemoved.addListener(
callback: function,
)
从系统中移除设备时生成的事件。如需了解传送哪些事件,请参阅 onDeviceAdded
。
参数
-
callback
功能
callback
参数如下所示:(deviceId: number) => void
-
deviceId
number
-