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 para dispositivos de hardware. Los errores que genera esta API se informan configurando runtime.lastError y ejecutando la devolución de llamada normal de la función. En este caso, los parámetros regulares de la devolución de llamada no estarán definidos.

Permisos

usb

Tipos

ConfigDescriptor

Propiedades

  • activo

    boolean

    Chrome 47 y versiones posteriores

    ¿Esta es la configuración activa?

  • configurationValue

    número

    El número de configuración.

  • descripción

    string 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

    La potencia máxima que necesita este dispositivo en milibares (mA).

  • remoteWakeup

    boolean

    El dispositivo admite la función de activación remota.

  • selfPowered

    boolean

    El dispositivo funciona automáticamente.

ConnectionHandle

Propiedades

  • handle

    número

    Un controlador opaco que representa esta conexión con el dispositivo USB y todas las interfaces reclamadas asociadas y las transferencias pendientes. 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).

  • dirección

    La dirección de la transferencia ("in" o "out").

  • index

    número

    El campo wIndex; consulta Ibid.

  • longitud

    número opcional

    La cantidad máxima de bytes que se recibirán (obligatorio solo para las transferencias de entrada).

  • destinatario

    El destino de la transferencia. El objetivo proporcionado por index se debe reclamar si "interface" o "endpoint".

  • request

    número

    El campo bRequest, consulta la Revisión de la especificación de bus universal en serie 1.1, sección 9.3.

  • requestType

    El tipo de solicitud.

  • tiempo de espera agotado

    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.

  • valor

    número

    El campo wValue; consulta Ibid.

Device

Propiedades

  • dispositivo

    número

    Es un ID opaco para el dispositivo USB. Permanecerá sin cambios hasta que se desconecte el dispositivo.

  • manufacturerName

    string

    Chrome 46 y versiones posteriores

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

  • productId

    número

    Es el ID del producto.

  • NombreProducto

    string

    Chrome 46 y versiones posteriores

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

  • serialNumber

    string

    Chrome 46 y versiones posteriores

    Es la cadena iSerialNumber que se lee desde el 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

    Clase de interfaz USB, 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 la clase de interfaz coincide.

  • productId

    número opcional

    Es el ID del producto del dispositivo, que se marca solo si el ID del proveedor coincide.

  • vendorId

    número opcional

    Es el ID del proveedor del dispositivo.

DevicePromptOptions

Propiedades

  • filtros

    DeviceFilter[] opcional

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

  • 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

“en”

“salida”

EndpointDescriptor

Propiedades

  • dirección

    número

    Dirección del extremo.

  • dirección

    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 de interrupción e isócrono).

  • sincronización

    Modo de sincronización de la transferencia (solo modo isocrónico).

  • Tipo de transferencia.

  • uso

    UsageType opcional

    Sugerencia de uso del extremo.

EnumerateDevicesAndRequestAccessOptions

Propiedades

  • interfaceId

    número opcional

    El ID de interfaz para solicitar acceso. Solo está 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 cualquier filtro determinado. Si la lista de filtros está vacía, se mostrarán todos los dispositivos para los que la app tenga 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).

  • dirección

    La dirección de la transferencia ("in" o "out").

  • extremo

    número

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

  • longitud

    número opcional

    La cantidad máxima de bytes que se recibirán (obligatorio solo para las transferencias de entrada).

  • tiempo de espera agotado

    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 configuración alternativo de la interfaz (el valor predeterminado es 0)

  • descripción

    string opcional

    Descripción de la interfaz.

  • extremos

    Extremos disponibles.

  • extra_data

    ArrayBuffer

    Datos adicionales del descriptor asociados con esta interfaz.

  • interfaceClass

    número

    Es la clase de la interfaz USB.

  • interfaceNumber

    número

    Es el número de la interfaz.

  • interfaceProtocol

    número

    Protocolo de interfaz USB

  • interfaceSubclass

    número

    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 especificados en este bloque de parámetros se divide en los límites de packetLength para formar los paquetes individuales de la transferencia.

Recipient

Enum

“dispositivo”

"interface"

“endpoint”

“otro”

RequestType

Enum

“estándar”

“clase”

“vendor”

“reservado”

SynchronizationType

En el caso de los modos isócrono y de interrupción, SynchronizationType y UsageType se asignan a sus homónimos dentro de la especificación USB.

Enum

“asíncrono”

“adaptativo”

“síncrono”

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”

"interrupt"

“isocrono”

“masiva”

UsageType

Enum

“datos”

“feedback”

"ExpresaFeedback"

“periodic”

“notificación”

Métodos

bulkTransfer()

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

Realiza una transferencia masiva en el dispositivo especificado.

Parámetros

Muestra

  • Promise<TransferResultInfo>

    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 los datos se puedan transferir a una interfaz o a extremos asociados, se debe reclamar la interfaz. Solo un controlador de conexión puede reclamar una interfaz a la vez. Si ya se reclamó la interfaz, la llamada fallará.

Se debe llamar a releaseInterface cuando ya no se necesita la interfaz.

Parámetros

  • Una conexión abierta al dispositivo.

  • interfaceNumber

    número

    La interfaz que se reclamará.

  • callback

    función opcional

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

    () => void

Muestra

  • Promesa<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 controlador después de que se cerró es una operación segura, pero no implica que se tomen medidas.

Parámetros

Muestra

  • Promesa<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 controles en el dispositivo especificado.

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

Parámetros

Muestra

  • Promise&lt;TransferResultInfo&gt;

    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 los IDs de la interfaz (opcional) 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á el controlador de conexión.

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

Parámetros

Muestra

  • Promise&lt;ConnectionHandle[]&gt;

    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 de la configuración seleccionada actualmente.

Parámetros

Muestra

  • Promise&lt;ConfigDescriptor&gt;

    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

Muestra

  • Promise&lt;ConfigDescriptor[]&gt;

    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

Muestra

  • Promesa<Dispositivo[]>

    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

Muestra

  • Promesa<Dispositivo[]>

    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

Muestra

  • Promise&lt;TransferResultInfo&gt;

    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 isócrona en el dispositivo específico.

Parámetros

Muestra

  • Promise&lt;TransferResultInfo&gt;

    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,
)

Muestra una lista de todas las interfaces de un dispositivo USB.

Parámetros

Muestra

  • Promise&lt;InterfaceDescriptor[]&gt;

    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

Muestra

  • Promise&lt;ConnectionHandle&gt;

    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,
)

Libera una interfaz reclamada.

Parámetros

  • Una conexión abierta al dispositivo.

  • interfaceNumber

    número

    La interfaz que se lanzará.

  • callback

    función opcional

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

    () => void

Muestra

  • Promesa<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 de ChromeOS y no se podía llamar desde otras plataformas. Ahora, esta operación se realiza de forma implícita como parte de openDevice, y esta función mostrará true en todas las plataformas.

Solicita acceso al agente de permisos a un dispositivo reclamado por el Sistema operativo Chrome si no se reclama la interfaz determinada en el 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

Muestra

  • Promise&lt;boolean&gt;

    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 determinado, y el dispositivo USB parecerá estar desconectado y, luego, volver a conectarlo. En este caso, se debe volver a llamar a getDevices o findDevices para adquirir el dispositivo.

Parámetros

  • 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

Muestra

  • Promise&lt;boolean&gt;

    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 son válidos los valores de configuración superiores a 0. Sin embargo, algunos dispositivos con errores tienen una configuración de trabajo 0 y, por lo tanto, se permite este valor.

Parámetros

  • Una conexión abierta al dispositivo.

  • configurationValue

    número

  • callback

    función opcional

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

    () => void

Muestra

  • Promesa<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 anteriormente.

Parámetros

  • Una conexión abierta con el dispositivo en el que se reclamó esta interfaz.

  • interfaceNumber

    número

    La interfaz que se configurará.

  • alternateSetting

    número

    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

Muestra

  • Promesa<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 que se genera cuando se agrega un dispositivo al sistema. Los eventos solo se transmiten a las apps y extensiones que tienen permiso para acceder al dispositivo. Es posible que se haya otorgado el permiso en el momento de la instalación, cuando el usuario aceptó un permiso opcional (consulta permissions.request) o a través de getUserSelectedDevices.

Parámetros

  • callback

    función

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

    (device: Device) => void

onDeviceRemoved

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

Evento generado cuando se quita un dispositivo del sistema. Consulta onDeviceAdded para saber qué eventos se publican.

Parámetros

  • callback

    función

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

    (device: Device) => void