chrome.hid

说明

使用 chrome.hid API 与已连接的 HID 设备交互。借助此 API,您可以在应用环境中访问 HID 操作。使用此 API,应用可以充当硬件设备的驱动程序。通过设置 runtime.lastError 并执行函数的常规回调来报告此 API 生成的错误。在这种情况下,回调的常规参数将处于未定义状态。

权限

hid

类型

DeviceFilter

属性

  • productId

    编号(选填

    设备产品 ID,仅当供应商 ID 匹配时才检查。

  • 使用量

    编号(选填

    HID 用途标识符,仅在 HID 用途页面匹配时才检查。

  • usagePage

    编号(选填

    HID 用途页面标识符。

  • vendorId

    编号(选填

    设备供应商 ID。

GetDevicesOptions

属性

  • 过滤条件

    DeviceFilter[] 可选

    系统将返回与任意指定过滤条件匹配的设备。一个空的过滤条件列表将返回该应用有权使用的所有设备。

  • productId

    编号(选填

    <ph type="x-smartling-placeholder"></ph> 已弃用

    相当于设置 DeviceFilter.productId

  • vendorId

    编号(选填

    <ph type="x-smartling-placeholder"></ph> 已弃用

    相当于设置 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

    字符串

    Chrome 46 及更高版本

    从设备读取的产品名称(如果有)。

  • reportDescriptor

    数组缓冲区

    原始设备报告描述符(在 Windows 上不可用)。

  • serialNumber

    字符串

    Chrome 46 及更高版本

    从设备读取的序列号(如果有)。

  • vendorId

    number

    供应商 ID。

方法

connect()

<ph type="x-smartling-placeholder"></ph> 承诺
chrome.hid.connect(
  deviceId: number,
  callback?: function,
)

打开与 HID 设备的连接以进行通信。

参数

返回

  • Promise&lt;HidConnectInfo&gt;

    Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

disconnect()

<ph type="x-smartling-placeholder"></ph> 承诺
chrome.hid.disconnect(
  connectionId: number,
  callback?: function,
)

断开与设备的连接。调用后在设备上调用操作是安全的,但不会产生任何效果。

参数

  • connectionId

    number

    connect 返回的 connectionId

  • callback

    函数(可选)

    callback 参数如下所示:

    () => void

返回

  • 承诺<void>

    Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

getDevices()

<ph type="x-smartling-placeholder"></ph> 承诺
chrome.hid.getDevices(
  options: GetDevicesOptions,
  callback?: function,
)

枚举已连接的 HID 设备。

参数

返回

  • Promise&lt;HidDeviceInfo[]&gt;

    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

    • 数据

      数组缓冲区

      系统会移除报告数据,报告 ID 前缀(如果存在)。

receiveFeatureReport()

<ph type="x-smartling-placeholder"></ph> 承诺
chrome.hid.receiveFeatureReport(
  connectionId: number,
  reportId: number,
  callback?: function,
)

从设备请求功能报告。

参数

  • connectionId

    number

    connect 返回的 connectionId

  • reportId

    number

    报告 ID,如果没有,则为 0

  • callback

    函数(可选)

    callback 参数如下所示:

    (data: ArrayBuffer) => void

    • 数据

      数组缓冲区

      报告数据,包括报告 ID 前缀(如果由设备发送)。

返回

  • Promise<ArrayBuffer>

    Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

send()

<ph type="x-smartling-placeholder"></ph> 承诺
chrome.hid.send(
  connectionId: number,
  reportId: number,
  data: ArrayBuffer,
  callback?: function,
)

向设备发送输出报告。

注意:请勿在 data 中添加报告 ID 前缀。如有必要,会添加此名称。

参数

  • connectionId

    number

    connect 返回的 connectionId

  • reportId

    number

    要使用的报告 ID,否则为 0

  • 数据

    数组缓冲区

    报告数据。

  • callback

    函数(可选)

    callback 参数如下所示:

    () => void

返回

  • 承诺<void>

    Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

sendFeatureReport()

<ph type="x-smartling-placeholder"></ph> 承诺
chrome.hid.sendFeatureReport(
  connectionId: number,
  reportId: number,
  data: ArrayBuffer,
  callback?: function,
)

向设备发送功能报告。

注意:请勿在 data 中添加报告 ID 前缀。如有必要,会添加此名称。

参数

  • connectionId

    number

    connect 返回的 connectionId

  • reportId

    number

    要使用的报告 ID,否则为 0

  • 数据

    数组缓冲区

    报告数据。

  • callback

    函数(可选)

    callback 参数如下所示:

    () => void

返回

  • 承诺<void>

    Chrome 117 及更高版本

    只有 Manifest V3 及更高版本支持 Promise,其他平台需要使用回调。

事件

onDeviceAdded

chrome.hid.onDeviceAdded.addListener(
  callback: function,
)

将设备添加到系统时生成的事件。系统仅会向有权访问该设备的应用和扩展程序广播事件。权限可能是在安装应用时或用户接受可选权限时授予的(请参阅 permissions.request)。

参数

onDeviceRemoved

chrome.hid.onDeviceRemoved.addListener(
  callback: function,
)

从系统中移除设备时生成的事件。如需了解系统会传送哪些事件,请参阅 onDeviceAdded

参数

  • callback

    函数

    callback 参数如下所示:

    (deviceId: number) => void

    • deviceId

      number