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 posterioresTiempo 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 posterioresEs 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 posterioresEs la cadena de iProduct que se lee desde el dispositivo, si está disponible.
-
serialNumber
string
Chrome 46 y versiones posterioresEs 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 posterioresLa 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
SynchronizationType opcional
Modo de sincronización de la transferencia (solo modo isocrónico).
-
tipo
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
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).
-
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 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 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()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
Realiza una transferencia masiva en el dispositivo especificado.
Parámetros
-
handle
Una conexión abierta al dispositivo.
-
transferInfo
Los parámetros de transferencia.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(info: TransferResultInfo) => void
-
información
-
Muestra
-
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 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
-
handle
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 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 controlador después de que se cerró es una operación segura, pero no implica que se tomen medidas.
Parámetros
-
handle
El
ConnectionHandle
que se debe cerrar. -
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:() => void
Muestra
-
Promesa<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 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
-
handle
Una conexión abierta al dispositivo.
-
transferInfo
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(info: TransferResultInfo) => void
-
información
-
Muestra
-
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 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
-
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
-
controladores
-
Muestra
-
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 de la configuración seleccionada actualmente.
Parámetros
-
handle
Una conexión abierta al dispositivo.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(config: ConfigDescriptor) => void
-
config
-
Muestra
-
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
del que se recuperarán los descriptores. -
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(configs: ConfigDescriptor[]) => void
-
configs
-
Muestra
-
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
-
Muestra
-
Promesa<Dispositivo[]>
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
-
Muestra
-
Promesa<Dispositivo[]>
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
-
handle
Una conexión abierta al dispositivo.
-
transferInfo
Los parámetros de transferencia.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(info: TransferResultInfo) => void
-
información
-
Muestra
-
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 isócrona en el dispositivo específico.
Parámetros
-
handle
Una conexión abierta al dispositivo.
-
transferInfo
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(info: TransferResultInfo) => void
-
información
-
Muestra
-
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,
)
Muestra una lista de todas las interfaces de un dispositivo USB.
Parámetros
-
handle
Una conexión abierta al dispositivo.
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:(descriptors: InterfaceDescriptor[]) => void
-
descriptores
-
Muestra
-
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
-
handle
-
Muestra
-
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,
)
Libera una interfaz reclamada.
Parámetros
-
handle
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 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 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<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 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
-
handle
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<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 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
-
handle
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 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 anteriormente.
Parámetros
-
handle
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 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 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
-
dispositivo
-
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
-
dispositivo
-