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

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

    The product name read from the device, if available.

  • reportDescriptor
    ArrayBuffer

    Raw device report descriptor (not available on Windows).

  • serialNumber
    string

    The serial number read from the device, if available.

  • vendorId
    number

    Vendor ID.

Methods

connect

connect(deviceId: number, callback: function): void

Open a connection to an HID device for communication.

Parameters

disconnect

disconnect(connectionId: number, callback?: function): void

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

    If you specify the parameter, it should be a function that looks like this:

    () => {...}

getDevices

getDevices(options: GetDevicesOptions, callback: function): void

Enumerate connected HID devices.

Parameters

getUserSelectedDevices

getUserSelectedDevices(options?: DevicePromptOptions, callback: function): void
Dev channel

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

  • options

    Configuration of the device picker dialog box.

  • callback
    function

    Invoked with a list of chosen Devices.

    The parameter should be a function that looks like this:

    (devices: HidDeviceInfo[]) => {...}

receive

receive(connectionId: number, callback: function): void

Receive the next input report from the device.

Parameters

  • connectionId
    number

    The connectionId returned by connect.

  • callback
    function

    The parameter should be a function that looks like this:

    (reportId: number, data: ArrayBuffer) => {...}
    • reportId
      number

      The report ID or 0 if none.

    • data
      ArrayBuffer

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

receiveFeatureReport

receiveFeatureReport(connectionId: number, reportId: number, callback: function): void

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 parameter should be a function that looks like this:

    (data: ArrayBuffer) => {...}
    • data
      ArrayBuffer

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

send

send(connectionId: number, reportId: number, data: ArrayBuffer, callback: function): void

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 parameter should be a function that looks like this:

    () => {...}

sendFeatureReport

sendFeatureReport(connectionId: number, reportId: number, data: ArrayBuffer, callback: function): void

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 parameter should be a function that looks like this:

    () => {...}

Events

onDeviceAdded

onDeviceAdded.addListener(listener: 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).

Event

  • listener
    function

    The listener parameter should be a function that looks like this:

    (device: HidDeviceInfo) => {...}

onDeviceRemoved

onDeviceRemoved.addListener(listener: function)

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

Event

  • listener
    function

    The listener parameter should be a function that looks like this:

    (deviceId: number) => {...}
    • deviceId
      number

      The deviceId property of the device passed to onDeviceAdded.

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