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 posterioresTiempo 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 posterioresEs 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 posterioresEs la cadena de iProduct que se lee del dispositivo, si está disponible.
-
serialNumber
cadena
Chrome 46 y versiones posterioresEs 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 posterioresLa 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
SynchronizationType opcional
Modo de sincronización de transferencia (solo isocrono).
-
tipo
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
ObsoletoEquivale a la configuración
DeviceFilter.productId
. -
vendorId
número opcional
ObsoletoEquivale 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 posterioresTiempo 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()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
Realiza una transferencia masiva en el dispositivo especificado.
Parámetros
-
identificador
Es una conexión abierta con el dispositivo.
-
transferInfo
Son los parámetros de transferencia.
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(info: TransferResultInfo) => void
-
info
-
Devuelve
-
Promise<TransferResultInfo>
Chrome 116 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
claimInterface()
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 posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
closeDevice()
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
-
identificador
El
ConnectionHandle
para cerrar. -
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:() => void
Devuelve
-
Promise<void>
Chrome 116 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
controlTransfer()
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
-
identificador
Es una conexión abierta con el dispositivo.
-
transferInfo
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(info: TransferResultInfo) => void
-
info
-
Devuelve
-
Promise<TransferResultInfo>
Chrome 116 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
findDevices()
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
-
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:(handles: ConnectionHandle[]) => void
-
identificadores
-
Devuelve
-
Promise<ConnectionHandle[]>
Chrome 116 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
getConfiguration()
chrome.usb.getConfiguration(
handle: ConnectionHandle,
callback?: function,
)
Obtiene el descriptor de configuración para la configuración seleccionada actualmente.
Parámetros
-
identificador
Es una conexión abierta con el dispositivo.
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(config: ConfigDescriptor) => void
-
config
-
Devuelve
-
Promise<ConfigDescriptor>
Chrome 116 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
getConfigurations()
chrome.usb.getConfigurations(
device: Device,
callback?: function,
)
Devuelve el conjunto completo de descriptores de configuración del dispositivo.
Parámetros
-
dispositivo
El
Device
desde el que se deben recuperar los descriptores. -
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(configs: ConfigDescriptor[]) => void
-
configs
-
Devuelve
-
Promise<ConfigDescriptor[]>
Chrome 116 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
getDevices()
chrome.usb.getDevices(
options: EnumerateDevicesOptions,
callback?: function,
)
Enumera los dispositivos USB conectados.
Parámetros
-
Opciones
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
-
dispositivos
-
Devuelve
-
Promesa<Device[]>
Chrome 116 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
getUserSelectedDevices()
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
-
Opciones
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
-
dispositivos
-
Devuelve
-
Promesa<Device[]>
Chrome 116 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
interruptTransfer()
chrome.usb.interruptTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
Realiza una transferencia de interrupción en el dispositivo especificado.
Parámetros
-
identificador
Es una conexión abierta con el dispositivo.
-
transferInfo
Son los parámetros de transferencia.
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(info: TransferResultInfo) => void
-
info
-
Devuelve
-
Promise<TransferResultInfo>
Chrome 116 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
isochronousTransfer()
chrome.usb.isochronousTransfer(
handle: ConnectionHandle,
transferInfo: IsochronousTransferInfo,
callback?: function,
)
Realiza una transferencia isocrónica en el dispositivo específico.
Parámetros
-
identificador
Es una conexión abierta con el dispositivo.
-
transferInfo
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(info: TransferResultInfo) => void
-
info
-
Devuelve
-
Promise<TransferResultInfo>
Chrome 116 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
listInterfaces()
chrome.usb.listInterfaces(
handle: ConnectionHandle,
callback?: function,
)
Enumera todas las interfaces de un dispositivo USB.
Parámetros
-
identificador
Es una conexión abierta con el dispositivo.
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(descriptors: InterfaceDescriptor[]) => void
-
descriptors
-
Devuelve
-
Promise<InterfaceDescriptor[]>
Chrome 116 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
openDevice()
chrome.usb.openDevice(
device: Device,
callback?: function,
)
Abre un dispositivo USB que muestra getDevices
.
Parámetros
-
dispositivo
El
Device
que se abrirá. -
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(handle: ConnectionHandle) => void
-
identificador
-
Devuelve
-
Promise<ConnectionHandle>
Chrome 116 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
releaseInterface()
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 posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
requestAccess()
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 posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
resetDevice()
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 posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
setConfiguration()
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 posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
setInterfaceAlternateSetting()
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 posterioresLas 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
-
dispositivo
-
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
-
dispositivo
-