Welcome What's new in Chrome extensions Getting started API Reference Samples
Welcome What's new in Chrome extensions Getting started API Reference Samples

chrome.hid

This API is part of the deprecated Chrome Apps platform. Learn more about migrating your app.
  • Description

    Use the chrome.hid API to interact with connected HID devices. This API provides access to HID operations from within the context of an app. Using this API, apps can function as drivers for hardware devices. Errors generated by this API are reported by setting runtime.lastError and executing the function's regular callback. The callback's regular parameters will be undefined in this case.

  • Permissions
    hid

Summary

Types

DeviceFilter

Properties

  • productId

    number optional

    Device product ID, only checked only if the vendor ID matches.

  • usage

    number optional

    HID usage identifier, checked only if the HID usage page matches.

  • usagePage

    number optional

    HID usage page identifier.

  • vendorId

    number optional

    Device vendor ID.

DevicePromptOptions

Chrome 45+

Properties

  • filters

    DeviceFilter[] optional

    Filter the list of devices presented to the user. If multiple filters are provided devices matching any filter will be displayed.

  • multiple

    boolean optional

    Allow the user to select multiple devices.

GetDevicesOptions

Properties

  • filters

    DeviceFilter[] optional

    A device matching any given filter will be returned. An empty filter list will return all devices the app has permission for.

  • productId

    number optional

    Deprecated

    Equivalent to setting DeviceFilter.productId.

  • vendorId

    number optional

    Deprecated

    Equivalent to setting DeviceFilter.vendorId.

HidCollectionInfo

Properties

  • reportIds

    number[]

    Report IDs which belong to the collection and to its children.

  • usage

    number

    Page-defined usage identifier.

  • usagePage

    number

    HID usage page identifier.

HidConnectInfo

Properties

  • connectionId

    number

    The opaque ID used to identify this connection in all other functions.

HidDeviceInfo

Properties

  • collections

    Top-level collections from this device's report descriptors.

  • deviceId

    number

    Opaque device ID.

  • maxFeatureReportSize

    number

    Top-level collection's maximum feature report size.

  • maxInputReportSize

    number

    Top-level collection's maximum input report size.

  • maxOutputReportSize

    number

    Top-level collection's maximum output report size.

  • productId

    number

    Product ID.

  • productName

    string

    Chrome 46+

    The product name read from the device, if available.

  • reportDescriptor

    ArrayBuffer

    Raw device report descriptor (not available on Windows).

  • serialNumber

    string

    Chrome 46+

    The serial number read from the device, if available.

  • vendorId

    number

    Vendor ID.

Methods

connect

chrome.hid.connect(
  deviceId: number,
  callback: function,
)

Open a connection to an HID device for communication.

Parameters

disconnect

chrome.hid.disconnect(
  connectionId: number,
  callback?: function,
)

Disconnect from a device. Invoking operations on a device after calling this is safe but has no effect.

Parameters

  • connectionId

    number

    The connectionId returned by connect.

  • callback

    function optional

    The callback parameter looks like: () => void

getDevices

chrome.hid.getDevices(
  options: GetDevicesOptions,
  callback: function,
)

Enumerate connected HID devices.

Parameters

getUserSelectedDevices

chrome.hid.getUserSelectedDevices(
  options?: DevicePromptOptions,
  callback: function,
)
Chrome 45+

Presents a device picker to the user and returns HidDeviceInfo objects for the devices selected. If the user cancels the picker devices will be empty. A user gesture is required for the dialog to display. Without a user gesture, the callback will run as though the user cancelled. If multiple filters are provided devices matching any filter will be displayed.

Parameters

receive

chrome.hid.receive(
  connectionId: number,
  callback: function,
)

Receive the next input report from the device.

Parameters

  • connectionId

    number

    The connectionId returned by connect.

  • callback

    function

    The callback parameter looks like: (reportId: number, data: ArrayBuffer) => void

    • reportId

      number

      The report ID or 0 if none.

    • data

      ArrayBuffer

      The report data, the report ID prefix (if present) is removed.

receiveFeatureReport

chrome.hid.receiveFeatureReport(
  connectionId: number,
  reportId: number,
  callback: function,
)

Request a feature report from the device.

Parameters

  • connectionId

    number

    The connectionId returned by connect.

  • reportId

    number

    The report ID, or 0 if none.

  • callback

    function

    The callback parameter looks like: (data: ArrayBuffer) => void

    • data

      ArrayBuffer

      The report data, including a report ID prefix if one is sent by the device.

send

chrome.hid.send(
  connectionId: number,
  reportId: number,
  data: ArrayBuffer,
  callback: function,
)

Send an output report to the device.

Note: Do not include a report ID prefix in data. It will be added if necessary.

Parameters

  • connectionId

    number

    The connectionId returned by connect.

  • reportId

    number

    The report ID to use, or 0 if none.

  • data

    ArrayBuffer

    The report data.

  • callback

    function

    The callback parameter looks like: () => void

sendFeatureReport

chrome.hid.sendFeatureReport(
  connectionId: number,
  reportId: number,
  data: ArrayBuffer,
  callback: function,
)

Send a feature report to the device.

Note: Do not include a report ID prefix in data. It will be added if necessary.

Parameters

  • connectionId

    number

    The connectionId returned by connect.

  • reportId

    number

    The report ID to use, or 0 if none.

  • data

    ArrayBuffer

    The report data.

  • callback

    function

    The callback parameter looks like: () => void

Events

onDeviceAdded

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

Event generated when a device is added to the system. Events are only broadcast to apps and extensions that have permission to access the device. Permission may have been granted at install time or when the user accepted an optional permission (see permissions.request).

Parameters

onDeviceRemoved

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

Event generated when a device is removed from the system. See onDeviceAdded for which events are delivered.

Parameters

  • callback

    function

    The callback parameter looks like: (deviceId: number) => void

    • deviceId

      number

We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.