chrome.usb

Descripción

Usa la API de chrome.usb para interactuar con dispositivos USB conectados. Esta API proporciona acceso a operaciones de USB desde el contexto de una app. Con esta API, las apps pueden funcionar como controladores de dispositivos de hardware. Los errores generados por esta API se informan configurando runtime.lastError y ejecutando la devolución de llamada normal de la función. Los parámetros regulares de la devolución de llamada no se definirán en este caso.

Permisos

usb

Tipos

ConfigDescriptor

Propiedades

  • activo

    boolean

    Chrome 47 y versiones posteriores

    ¿Es esta la configuración activa?

  • configurationValue

    número

    El número de configuración.

  • descripción

    cadena opcional

    Descripción de la configuración.

  • extra_data

    ArrayBuffer

    Datos adicionales del descriptor asociados con esta configuración.

  • interfaces

    Interfaces disponibles.

  • maxPower

    número

    Es la potencia máxima que necesita este dispositivo en miliampos (mA).

  • remoteWakeup

    boolean

    El dispositivo admite la activación remota.

  • selfPowered

    boolean

    El dispositivo funciona solo.

ConnectionHandle

Propiedades

  • identificador

    número

    Es un controlador opaco que representa esta conexión al dispositivo USB y todas las interfaces reclamadas y transferencias pendientes asociadas. Se crea un identificador nuevo cada vez que se abre el dispositivo. El controlador de conexión es diferente de Device.device.

  • productId

    número

    Es el ID del producto.

  • vendorId

    número

    Es el ID del proveedor del dispositivo.

ControlTransferInfo

Propiedades

  • datos

    ArrayBuffer opcional

    Los datos que se transmitirán (obligatorio solo para las transferencias de salida).

  • direction

    La dirección del transbordo ("in" o "out")

  • index

    número

    El campo wIndex, consulta Ibid.

  • length

    número opcional

    La cantidad máxima de bytes que se recibirán (solo requerida por transferencias de entrada).

  • destinatario

    Es el destino de la transferencia. Se debe reclamar el objetivo proporcionado por index si es "interface" o "endpoint".

  • request

    número

    El campo bRequest consulta el artículo 9.3 de la revisión 1.1 de la especificación del bus universal en serie.

  • requestType

    El tipo de solicitud.

  • tiempo de espera

    número opcional

    Chrome 43 y versiones posteriores

    Tiempo de espera de la solicitud (en milisegundos). El valor predeterminado 0 indica que no hay tiempo de espera.

  • value

    número

    El campo wValue, consulta Ibid.

Device

Propiedades

  • dispositivo

    número

    Es un ID opaco para el dispositivo USB. No cambiará hasta que lo desconectes.

  • manufacturerName

    cadena

    Chrome 46 y versiones posteriores

    Es la cadena de iManufacturer que se lee del dispositivo, si está disponible.

  • productId

    número

    Es el ID del producto.

  • productName

    cadena

    Chrome 46 y versiones posteriores

    Es la cadena de iProduct que se lee del dispositivo, si está disponible.

  • serialNumber

    cadena

    Chrome 46 y versiones posteriores

    Es la cadena iSerialNumber que se lee del dispositivo, si está disponible.

  • vendorId

    número

    Es el ID del proveedor del dispositivo.

  • versión

    número

    Chrome 51 y versiones posteriores

    La versión del dispositivo (campo bcdDevice).

DeviceFilter

Propiedades

  • interfaceClass

    número opcional

    Es la clase de interfaz USB, que coincide con cualquier interfaz del dispositivo.

  • interfaceProtocol

    número opcional

    Protocolo de interfaz USB, marcado solo si coincide la subclase de la interfaz.

  • interfaceSubclass

    número opcional

    Subclase de interfaz USB, marcada solo si coincide la clase de interfaz.

  • productId

    número opcional

    ID del producto del dispositivo. Se verifica solo si el ID del proveedor coincide.

  • vendorId

    número opcional

    ID del proveedor del dispositivo.

DevicePromptOptions

Propiedades

  • filtros

    DeviceFilter[] opcional

    Filtra la lista de dispositivos que se presentan al usuario. Si se proporcionan varios filtros, se mostrarán los dispositivos que coincidan con cualquiera de los filtros.

  • múltiples

    booleano opcional

    Permite que el usuario seleccione varios dispositivos.

Direction

Directions, Recipient, RequestType y TransferType se asignan a sus homónimos dentro de la especificación USB.

Enum

EndpointDescriptor

Propiedades

  • de la página web.

    número

    Dirección del extremo.

  • direction

    Dirección de la transferencia.

  • extra_data

    ArrayBuffer

    Datos adicionales del descriptor asociados con este extremo.

  • maximumPacketSize

    número

    Tamaño máximo del paquete.

  • pollingInterval

    número opcional

    Intervalo de sondeo (solo interrupción e isócrono)

  • sincronización

    Modo de sincronización de transferencia (solo isocrono).

  • Tipo de transferencia

  • uso

    UsageType opcional

    Sugerencia de uso del extremo.

EnumerateDevicesAndRequestAccessOptions

Propiedades

  • interfaceId

    número opcional

    El ID de interfaz al que se solicitará acceso. Solo disponible en ChromeOS. No tiene efecto en otras plataformas.

  • productId

    número

    Es el ID del producto.

  • vendorId

    número

    Es el ID del proveedor del dispositivo.

EnumerateDevicesOptions

Propiedades

  • filtros

    DeviceFilter[] opcional

    Se mostrará un dispositivo que coincida con cualquiera de los filtros. Una lista de filtros vacía mostrará todos los dispositivos para los que la app tiene permiso.

  • productId

    número opcional

    Obsoleto

    Equivale a la configuración DeviceFilter.productId.

  • vendorId

    número opcional

    Obsoleto

    Equivale a la configuración DeviceFilter.vendorId.

GenericTransferInfo

Propiedades

  • datos

    ArrayBuffer opcional

    Los datos que se transmitirán (obligatorio solo para las transferencias de salida).

  • direction

    La dirección del transbordo ("in" o "out")

  • extremo

    número

    La dirección del extremo de destino. Se debe reclamar la interfaz que contiene este extremo.

  • length

    número opcional

    La cantidad máxima de bytes que se recibirán (solo requerida por transferencias de entrada).

  • tiempo de espera

    número opcional

    Chrome 43 y versiones posteriores

    Tiempo de espera de la solicitud (en milisegundos). El valor predeterminado 0 indica que no hay tiempo de espera.

InterfaceDescriptor

Propiedades

  • alternateSetting

    número

    El número de la configuración alternativa de la interfaz (el valor predeterminado es 0)

  • descripción

    cadena opcional

    Descripción de la interfaz.

  • extremos

    Extremos disponibles.

  • extra_data

    ArrayBuffer

    Datos adicionales del descriptor asociados con esta interfaz.

  • interfaceClass

    número

    La clase de interfaz USB.

  • interfaceNumber

    número

    Es el número de la interfaz.

  • interfaceProtocol

    número

    El protocolo de interfaz USB.

  • interfaceSubclass

    número

    La subclase de la interfaz USB.

IsochronousTransferInfo

Propiedades

  • packetLength

    número

    La longitud de cada uno de los paquetes en esta transferencia.

  • paquetes

    número

    La cantidad total de paquetes en esta transferencia.

  • transferInfo

    Parámetros de transferencia La longitud de transferencia o el búfer de datos especificado en este bloque de parámetros se divide junto a los límites de packetLength para formar los paquetes individuales de la transferencia.

Recipient

Enum

RequestType

Enum

SynchronizationType

Para los modos de interrupción e isócrono, SynchronizationType y UsageType se asignan a sus nombres homónimos dentro de la especificación USB.

Enum

TransferResultInfo

Propiedades

  • datos

    ArrayBuffer opcional

    Los datos que muestra una transferencia de entrada. undefined para las transferencias de salida.

  • resultCode

    número opcional

    Un valor de 0 indica que la transferencia se realizó correctamente. Otros valores indican una falla.

TransferType

Enum

"control"

UsageType

Enum

Métodos

bulkTransfer()

Promesa
chrome.usb.bulkTransfer(
  handle: ConnectionHandle,
  transferInfo: GenericTransferInfo,
  callback?: function,
)

Realiza una transferencia masiva en el dispositivo especificado.

Parámetros

Devuelve

  • Chrome 116 y versiones posteriores

    Las promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.

claimInterface()

Promesa
chrome.usb.claimInterface(
  handle: ConnectionHandle,
  interfaceNumber: number,
  callback?: function,
)

Reclama una interfaz en un dispositivo USB. Antes de que se puedan transferir datos a una interfaz o a los extremos asociados, se debe reclamar la interfaz. Solo un controlador de conexión puede reclamar una interfaz en cualquier momento. Si ya se reclamó la interfaz, la llamada fallará.

Se debe llamar a releaseInterface cuando la interfaz ya no sea necesaria.

Parámetros

  • identificador

    Es una conexión abierta con el dispositivo.

  • interfaceNumber

    número

    La interfaz que se reclamará.

  • callback

    Función opcional

    El parámetro callback se ve de la siguiente manera:

    ()=>void

Devuelve

  • Promise<void>

    Chrome 116 y versiones posteriores

    Las promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.

closeDevice()

Promesa
chrome.usb.closeDevice(
  handle: ConnectionHandle,
  callback?: function,
)

Cierra un controlador de conexión. Invocar operaciones en un identificador después de que se ha cerrado es una operación segura, pero no provoca que se tome ninguna medida.

Parámetros

Devuelve

  • Promise<void>

    Chrome 116 y versiones posteriores

    Las promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.

controlTransfer()

Promesa
chrome.usb.controlTransfer(
  handle: ConnectionHandle,
  transferInfo: ControlTransferInfo,
  callback?: function,
)

Realiza una transferencia de control en el dispositivo especificado.

Las transferencias de control hacen referencia al dispositivo, una interfaz o un extremo. Las transferencias a una interfaz o extremo requieren que se reclame la interfaz.

Parámetros

Devuelve

  • Chrome 116 y versiones posteriores

    Las promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.

findDevices()

Promesa
chrome.usb.findDevices(
  options: EnumerateDevicesAndRequestAccessOptions,
  callback?: function,
)

Busca dispositivos USB especificados por el proveedor, el producto y (opcionalmente) los IDs de la interfaz y, si los permisos lo permiten, los abre para su uso.

Si se rechaza la solicitud de acceso o no se puede abrir el dispositivo, no se creará ni se mostrará un controlador de conexión.

Llamar a este método equivale a llamar a getDevices seguido de openDevice para cada dispositivo.

Parámetros

Devuelve

  • Promise<ConnectionHandle[]>

    Chrome 116 y versiones posteriores

    Las promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.

getConfiguration()

Promesa
chrome.usb.getConfiguration(
  handle: ConnectionHandle,
  callback?: function,
)

Obtiene el descriptor de configuración para la configuración seleccionada actualmente.

Parámetros

Devuelve

  • Chrome 116 y versiones posteriores

    Las promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.

getConfigurations()

Promesa Chrome 47 y versiones posteriores
chrome.usb.getConfigurations(
  device: Device,
  callback?: function,
)

Devuelve el conjunto completo de descriptores de configuración del dispositivo.

Parámetros

Devuelve

  • Promise<ConfigDescriptor[]>

    Chrome 116 y versiones posteriores

    Las promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.

getDevices()

Promesa
chrome.usb.getDevices(
  options: EnumerateDevicesOptions,
  callback?: function,
)

Enumera los dispositivos USB conectados.

Parámetros

  • Las propiedades que se buscarán en los dispositivos de destino.

  • callback

    Función opcional

    El parámetro callback se ve de la siguiente manera:

    (devices: Device[])=>void

Devuelve

  • Promesa<Device[]>

    Chrome 116 y versiones posteriores

    Las promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.

getUserSelectedDevices()

Promesa
chrome.usb.getUserSelectedDevices(
  options: DevicePromptOptions,
  callback?: function,
)

Presenta un selector de dispositivos al usuario y muestra los Device seleccionados. Si el usuario cancela, los dispositivos del selector estarán vacíos. Se requiere un gesto del usuario para que se muestre el diálogo. Sin un gesto del usuario, la devolución de llamada se ejecutará como si el usuario hubiera cancelado.

Parámetros

  • Configuración del cuadro de diálogo del selector de dispositivos.

  • callback

    Función opcional

    El parámetro callback se ve de la siguiente manera:

    (devices: Device[])=>void

Devuelve

  • Promesa<Device[]>

    Chrome 116 y versiones posteriores

    Las promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.

interruptTransfer()

Promesa
chrome.usb.interruptTransfer(
  handle: ConnectionHandle,
  transferInfo: GenericTransferInfo,
  callback?: function,
)

Realiza una transferencia de interrupción en el dispositivo especificado.

Parámetros

Devuelve

  • Chrome 116 y versiones posteriores

    Las promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.

isochronousTransfer()

Promesa
chrome.usb.isochronousTransfer(
  handle: ConnectionHandle,
  transferInfo: IsochronousTransferInfo,
  callback?: function,
)

Realiza una transferencia isocrónica en el dispositivo específico.

Parámetros

Devuelve

  • Chrome 116 y versiones posteriores

    Las promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.

listInterfaces()

Promesa
chrome.usb.listInterfaces(
  handle: ConnectionHandle,
  callback?: function,
)

Enumera todas las interfaces de un dispositivo USB.

Parámetros

Devuelve

  • Chrome 116 y versiones posteriores

    Las promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.

openDevice()

Promesa
chrome.usb.openDevice(
  device: Device,
  callback?: function,
)

Abre un dispositivo USB que muestra getDevices.

Parámetros

Devuelve

  • Chrome 116 y versiones posteriores

    Las promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.

releaseInterface()

Promesa
chrome.usb.releaseInterface(
  handle: ConnectionHandle,
  interfaceNumber: number,
  callback?: function,
)

Publica una interfaz reclamada.

Parámetros

  • identificador

    Es una conexión abierta con el dispositivo.

  • interfaceNumber

    número

    La interfaz que se lanzará.

  • callback

    Función opcional

    El parámetro callback se ve de la siguiente manera:

    ()=>void

Devuelve

  • Promise<void>

    Chrome 116 y versiones posteriores

    Las promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.

requestAccess()

Promesa Obsoleto
chrome.usb.requestAccess(
  device: Device,
  interfaceId: number,
  callback?: function,
)

Esta función era específica del Sistema operativo Chrome y la llamada en otras plataformas fallaba. Esta operación ahora se realiza de forma implícita como parte de openDevice y esta función mostrará true en todas las plataformas.

Solicita acceso del agente de permisos a un dispositivo reclamado por Chrome OS si no se reclama la interfaz determinada del dispositivo.

Parámetros

  • dispositivo

    El Device al que se solicita acceso.

  • interfaceId

    número

    La interfaz particular solicitada.

  • callback

    Función opcional

    El parámetro callback se ve de la siguiente manera:

    (success: boolean)=>void

    • correcto

      boolean

Devuelve

  • Promise<boolean>

    Chrome 116 y versiones posteriores

    Las promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.

resetDevice()

Promesa
chrome.usb.resetDevice(
  handle: ConnectionHandle,
  callback?: function,
)

Intenta restablecer el dispositivo USB. Si falla el restablecimiento, se cerrará el controlador de conexión correspondiente, y el dispositivo USB aparecerá como desconectado y luego se volverá a conectar. En este caso, se debe volver a llamar a getDevices o findDevices para adquirir el dispositivo.

Parámetros

  • identificador

    Un controlador de conexión para restablecer.

  • callback

    Función opcional

    El parámetro callback se ve de la siguiente manera:

    (success: boolean)=>void

    • correcto

      boolean

Devuelve

  • Promise<boolean>

    Chrome 116 y versiones posteriores

    Las promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.

setConfiguration()

Promesa
chrome.usb.setConfiguration(
  handle: ConnectionHandle,
  configurationValue: number,
  callback?: function,
)

Selecciona una configuración del dispositivo.

Esta función restablece de manera efectiva el dispositivo seleccionando una de las configuraciones disponibles. Solo los valores de configuración superiores a 0 son válidos. Sin embargo, algunos dispositivos con errores tienen una configuración 0 que funciona, por lo que se permite este valor.

Parámetros

  • identificador

    Es una conexión abierta con el dispositivo.

  • configurationValue

    número

  • callback

    Función opcional

    El parámetro callback se ve de la siguiente manera:

    ()=>void

Devuelve

  • Promise<void>

    Chrome 116 y versiones posteriores

    Las promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.

setInterfaceAlternateSetting()

Promesa
chrome.usb.setInterfaceAlternateSetting(
  handle: ConnectionHandle,
  interfaceNumber: number,
  alternateSetting: number,
  callback?: function,
)

Selecciona un parámetro de configuración alternativo en una interfaz reclamada con anterioridad.

Parámetros

  • identificador

    Es una conexión abierta con el dispositivo donde se reclamó esta interfaz.

  • interfaceNumber

    número

    La interfaz que se configurará.

  • alternateSetting

    número

    Es el parámetro de configuración alternativo que se debe establecer.

  • callback

    Función opcional

    El parámetro callback se ve de la siguiente manera:

    ()=>void

Devuelve

  • Promise<void>

    Chrome 116 y versiones posteriores

    Las promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.

Eventos

onDeviceAdded

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

Evento generado cuando se agrega un dispositivo al sistema Los eventos solo se transmiten a las aplicaciones y extensiones que tienen permiso para acceder al dispositivo. El permiso se puede haber otorgado en el momento de la instalación, cuando el usuario aceptó un permiso opcional (consulta permissions.request) o mediante getUserSelectedDevices.

Parámetros

  • callback

    la función

    El parámetro callback se ve de la siguiente manera:

    (device: Device)=>void

onDeviceRemoved

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

Es el evento que se genera cuando se quita un dispositivo del sistema. Consulta onDeviceAdded para saber qué eventos se publican.

Parámetros

  • callback

    la función

    El parámetro callback se ve de la siguiente manera:

    (device: Device)=>void