Descrizione
Utilizza l'API chrome.usb
per interagire con i dispositivi USB collegati. Questa API fornisce l'accesso alle operazioni USB dal contesto di un'app. Tramite questa API, le app possono funzionare come driver per i dispositivi hardware. Gli errori generati da questa API vengono segnalati impostando runtime.lastError
ed eseguendo il normale callback della funzione. In questo caso, i parametri regolari della chiamata di ritorno non saranno definiti.
Autorizzazioni
usb
Tipi
ConfigDescriptor
Proprietà
-
attivo
booleano
Chrome 47 e versioni successiveQuesta è la configurazione attiva?
-
configurationValue
numero
Il numero di configurazione.
-
descrizione
stringa facoltativo
Descrizione della configurazione.
-
extra_data
ArrayBuffer
Dati dei descrittori aggiuntivi associati a questa configurazione.
-
interfacce
Interfacce disponibili.
-
maxPower
numero
La potenza massima richiesta da questo dispositivo in milliampere (mA).
-
remoteWakeup
booleano
Il dispositivo supporta l'attivazione da remoto.
-
selfPowered
booleano
Il dispositivo è autoalimentato.
ConnectionHandle
Proprietà
-
handle
numero
Un handle opaco che rappresenta questa connessione al dispositivo USB e a tutte le interfacce rivendicate e ai trasferimenti in attesa associati. Ogni volta che apri il dispositivo viene creato un nuovo handle. L'handle della connessione è diverso da
Device.device
. -
productId
numero
L'ID del prodotto.
-
vendorId
numero
L'ID del fornitore del dispositivo.
ControlTransferInfo
Proprietà
-
dati
ArrayBuffer facoltativo
I dati da trasmettere (obbligatorio solo per i trasferimenti in uscita).
-
direction
La direzione di trasferimento (
"in"
o"out"
). -
indice
numero
Il campo
wIndex
, vedi Ibid. -
lunghezza
numero facoltativo
Il numero massimo di byte da ricevere (richiesto solo per i trasferimenti di input).
-
destinatario
La destinazione del trasferimento. Il target specificato da
index
deve essere rivendicato se"interface"
o"endpoint"
. -
richiesta
numero
Il campo
bRequest
, vedi Universal Serial Bus Specification Revision 1.1 § 9.3. -
requestType
Il tipo di richiesta.
-
timeout
number facoltativo
Chrome 43 e versioni successiveTimeout richiesta (in millisecondi). Il valore predefinito
0
indica che non è impostato alcun timeout. -
valore
numero
Il campo
wValue
, consulta Ibid.
Device
Proprietà
-
dispositivo
numero
Un ID opaco per il dispositivo USB. e rimane invariata finché il dispositivo non viene scollegato dall'alimentazione.
-
manufacturerName
stringa
Chrome 46 e versioni successiveLa stringa iManufacturer letta dal dispositivo, se disponibile.
-
productId
numero
L'ID prodotto.
-
productName
stringa
Chrome 46 e versioni successiveLa stringa iProduct letta dal dispositivo, se disponibile.
-
serialNumber
stringa
Chrome 46 e versioni successiveLa stringa iSerialNumber letta dal dispositivo, se disponibile.
-
vendorId
numero
L'ID del fornitore del dispositivo.
-
versione
numero
Chrome 51 e versioni successiveLa versione del dispositivo (campo bcdDevice).
DeviceFilter
Proprietà
-
interfaceClass
number facoltativo
Classe di interfaccia USB, corrisponde a qualsiasi interfaccia sul dispositivo.
-
interfaceProtocol
numero facoltativo
Protocollo di interfaccia USB, controllato solo se la sottoclasse dell'interfaccia corrisponde.
-
interfaceSubclass
numero facoltativo
Sottoclasse dell'interfaccia USB, selezionata solo se la classe dell'interfaccia corrisponde.
-
productId
numero facoltativo
ID prodotto del dispositivo, controllato solo se l'ID fornitore corrisponde.
-
vendorId
numero facoltativo
ID fornitore del dispositivo.
DevicePromptOptions
Proprietà
-
filtri
DeviceFilter[] facoltativo
Filtra l'elenco dei dispositivi presentati all'utente. Se sono disponibili più filtri, verranno visualizzati i dispositivi che corrispondono a un filtro qualsiasi.
-
multiple
booleano facoltativo
Consenti all'utente di selezionare più dispositivi.
Direction
Direction, Recipient, RequestType e TransferType corrispondono tutti ai rispettivi nomi all'interno della specifica USB.
Enum
"in"
"out"
EndpointDescriptor
Proprietà
-
indirizzo
numero
Indirizzo endpoint.
-
direction
Direzione di trasferimento.
-
extra_data
ArrayBuffer
Dati dei descrittori aggiuntivi associati a questo endpoint.
-
maximumPacketSize
numero
Dimensione massima del pacchetto.
-
pollingInterval
number facoltativo
Intervallo di polling (solo interrupt e incrono).
-
dell'audiodescrizione
SynchronizationType facoltativo
Modalità di sincronizzazione dei trasferimenti (solo sincronizzazione cronologica).
-
tipo
Tipo di trasferimento.
-
utilizzo
UsageType facoltativo
Suggerimento per l'utilizzo dell'endpoint.
EnumerateDevicesAndRequestAccessOptions
Proprietà
-
interfaceId
numero facoltativo
L'ID interfaccia a cui richiedere l'accesso. Disponibile solo su ChromeOS. Non avrà alcun effetto sulle altre piattaforme.
-
productId
numero
L'ID del prodotto.
-
vendorId
numero
L'ID del fornitore del dispositivo.
EnumerateDevicesOptions
Proprietà
-
filtri
DeviceFilter[] facoltativo
Verrà restituito un dispositivo che corrisponde a qualsiasi filtro specificato. Un elenco di filtri vuoto restituirà tutti i dispositivi per cui l'app ha l'autorizzazione.
-
productId
numero facoltativo
ObsoletoEquivalente all'impostazione
DeviceFilter.productId
. -
vendorId
number facoltativo
ObsoletaEquivalente all'impostazione
DeviceFilter.vendorId
.
GenericTransferInfo
Proprietà
-
dati
ArrayBuffer facoltativo
I dati da trasmettere (obbligatorio solo per i trasferimenti in uscita).
-
direction
La direzione del trasferimento (
"in"
o"out"
). -
endpoint
numero
L'indirizzo dell'endpoint di destinazione. L'interfaccia contenente questo endpoint deve essere rivendicata.
-
lunghezza
numero facoltativo
Il numero massimo di byte da ricevere (richiesto solo per i trasferimenti di input).
-
timeout
number facoltativo
Chrome 43 e versioni successiveTimeout richiesta (in millisecondi). Il valore predefinito
0
indica che non è impostato alcun timeout.
InterfaceDescriptor
Proprietà
-
alternateSetting
numero
Il numero dell'impostazione alternativa dell'interfaccia (il valore predefinito è
0
-
descrizione
stringa facoltativo
Descrizione dell'interfaccia.
-
endpoints
Endpoint disponibili.
-
extra_data
ArrayBuffer
Dati dei descrittori aggiuntivi associati a questa interfaccia.
-
interfaceClass
numero
La classe dell'interfaccia USB.
-
interfaceNumber
numero
Il numero di interfaccia.
-
interfaceProtocol
numero
Il protocollo dell'interfaccia USB.
-
interfaceSubclass
numero
La sottoclasse dell'interfaccia USB.
IsochronousTransferInfo
Proprietà
-
packetLength
numero
La lunghezza di ciascuno dei pacchetti in questo trasferimento.
-
pacchetti
numero
Il numero totale di pacchetti in questo trasferimento.
-
transferInfo
Trasferisci i parametri. La lunghezza di trasferimento o il buffer di dati specificati in questo blocco di parametri sono suddivisi lungo i limiti di
packetLength
per formare i singoli pacchetti del trasferimento.
Recipient
Enum
"endpoint"
RequestType
Enum
"standard"
"vendor"
SynchronizationType
Per le modalità di interruzione e di sincronizzazione, SynchronizationType e UsageType mappano ai rispettivi nomi all'interno della specifica USB.
Enum
"adattabile"
"synchronous"
TransferResultInfo
Proprietà
-
dati
ArrayBuffer facoltativo
I dati restituiti da un trasferimento di input.
undefined
per i trasferimenti in uscita. -
resultCode
numero facoltativo
Un valore
0
indica che il trasferimento è andato a buon fine. Altri valori indicano un errore.
TransferType
Enum
UsageType
Enum
"data"
"explicitFeedback"
"periodic"
"notification"
Metodi
bulkTransfer()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
Esegue un trasferimento collettivo sul dispositivo specificato.
Parametri
-
handle
Una connessione aperta al dispositivo.
-
transferInfo
I parametri di trasferimento.
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(info: TransferResultInfo) => void
-
informazioni
-
Resi
-
Promise<TransferResultInfo>
Chrome 116 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
claimInterface()
chrome.usb.claimInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
)
Rivendica un'interfaccia su un dispositivo USB. Prima che i dati possano essere trasferiti a un'interfaccia o agli endpoint associati, l'interfaccia deve essere rivendicata. Solo un handle di connessione può rivendicare un'interfaccia in un determinato momento. Se l'interfaccia è già stata rivendicata, questa chiamata non andrà a buon fine.
releaseInterface
deve essere chiamato quando l'interfaccia non è più necessaria.
Parametri
-
handle
Una connessione aperta al dispositivo.
-
interfaceNumber
numero
L'interfaccia da rivendicare.
-
callback
function facoltativa
Il parametro
callback
ha il seguente aspetto:() => void
Resi
-
Promise<void>
Chrome 116 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
closeDevice()
chrome.usb.closeDevice(
handle: ConnectionHandle,
callback?: function,
)
Chiude un handle di connessione. L'invocazione di operazioni su un handle dopo la sua chiusura è un'operazione sicura, ma non comporta alcuna azione.
Parametri
-
handle
La
ConnectionHandle
per chiudere. -
callback
function facoltativa
Il parametro
callback
ha il seguente aspetto:() => void
Resi
-
Promise<void>
Chrome 116 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
controlTransfer()
chrome.usb.controlTransfer(
handle: ConnectionHandle,
transferInfo: ControlTransferInfo,
callback?: function,
)
Esegue un trasferimento del controllo sul dispositivo specificato.
Per trasferimenti di controllo si intendono il dispositivo, un'interfaccia o un endpoint. I trasferimenti a un'interfaccia o a un endpoint richiedono la rivendicazione dell'interfaccia.
Parametri
-
handle
Una connessione aperta al dispositivo.
-
transferInfo
-
callback
function facoltativa
Il parametro
callback
ha il seguente aspetto:(info: TransferResultInfo) => void
-
informazioni
-
Resi
-
Promise<TransferResultInfo>
Chrome 116 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
findDevices()
chrome.usb.findDevices(
options: EnumerateDevicesAndRequestAccessOptions,
callback?: function,
)
Individua i dispositivi USB specificati dal fornitore, dal prodotto e (facoltativamente) dagli ID interfaccia e, se le autorizzazioni lo consentono, li apre per l'utilizzo.
Se la richiesta di accesso viene rifiutata o se il dispositivo non si apre, non verrà creato né restituito un handle di connessione.
Questo metodo equivale a chiamare getDevices
seguito da openDevice
per ogni dispositivo.
Parametri
-
Le proprietà da cercare sui dispositivi target.
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(handles: ConnectionHandle[]) => void
-
handle
-
Resi
-
Promise<ConnectionHandle[]>
Chrome 116 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
getConfiguration()
chrome.usb.getConfiguration(
handle: ConnectionHandle,
callback?: function,
)
Recupera il descrittore di configurazione per la configurazione attualmente selezionata.
Parametri
-
handle
Una connessione aperta al dispositivo.
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(config: ConfigDescriptor) => void
-
config
-
Resi
-
Promise<ConfigDescriptor>
Chrome 116 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
getConfigurations()
chrome.usb.getConfigurations(
device: Device,
callback?: function,
)
Restituisce l'insieme completo dei descrittori di configurazione del dispositivo.
Parametri
-
dispositivo
L'
Device
da cui recuperare i descrittori. -
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(configs: ConfigDescriptor[]) => void
-
configs
-
Resi
-
Promise<ConfigDescriptor[]>
Chrome 116 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
getDevices()
chrome.usb.getDevices(
options: EnumerateDevicesOptions,
callback?: function,
)
Elenca i dispositivi USB connessi.
Parametri
-
opzioni
Le proprietà da cercare sui dispositivi target.
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(devices: Device[]) => void
-
dispositivi
-
Resi
-
Promesso<Dispositivo[]>
Chrome 116 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
getUserSelectedDevices()
chrome.usb.getUserSelectedDevices(
options: DevicePromptOptions,
callback?: function,
)
Mostra all'utente un selettore di dispositivi e restituisce i Device
selezionati. Se l'utente annulla l'operazione, i dispositivi di selezione saranno vuoti. Per la visualizzazione della finestra di dialogo è necessario un gesto dell'utente. Senza un gesto dell'utente, il callback verrà eseguito come se l'utente avesse annullato.
Parametri
-
opzioni
Configurazione della finestra di dialogo del selettore di dispositivi.
-
callback
function facoltativa
Il parametro
callback
ha il seguente aspetto:(devices: Device[]) => void
-
dispositivi
-
Resi
-
Promesso<Dispositivo[]>
Chrome 116 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
interruptTransfer()
chrome.usb.interruptTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
Esegue un trasferimento di interruzione sul dispositivo specificato.
Parametri
-
handle
Una connessione aperta al dispositivo.
-
transferInfo
I parametri di trasferimento.
-
callback
function facoltativa
Il parametro
callback
ha il seguente aspetto:(info: TransferResultInfo) => void
-
informazioni
-
Resi
-
Promise<TransferResultInfo>
Chrome 116 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
isochronousTransfer()
chrome.usb.isochronousTransfer(
handle: ConnectionHandle,
transferInfo: IsochronousTransferInfo,
callback?: function,
)
Esegue un trasferimento isocrono sul dispositivo specifico.
Parametri
-
handle
Una connessione aperta al dispositivo.
-
transferInfo
-
callback
function facoltativa
Il parametro
callback
ha il seguente aspetto:(info: TransferResultInfo) => void
-
informazioni
-
Resi
-
Promise<TransferResultInfo>
Chrome 116 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
listInterfaces()
chrome.usb.listInterfaces(
handle: ConnectionHandle,
callback?: function,
)
Elenca tutte le interfacce presenti in un dispositivo USB.
Parametri
-
handle
Una connessione aperta al dispositivo.
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(descriptors: InterfaceDescriptor[]) => void
-
descrittori
-
Resi
-
Promise<InterfaceDescriptor[]>
Chrome 116 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
openDevice()
chrome.usb.openDevice(
device: Device,
callback?: function,
)
Apre un dispositivo USB restituito da getDevices
.
Parametri
-
dispositivo
La
Device
da aprire. -
callback
function facoltativa
Il parametro
callback
ha il seguente aspetto:(handle: ConnectionHandle) => void
-
handle
-
Resi
-
Promise<ConnectionHandle>
Chrome 116 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
releaseInterface()
chrome.usb.releaseInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
)
Rilascia un'interfaccia rivendicata.
Parametri
-
handle
Una connessione aperta al dispositivo.
-
interfaceNumber
numero
L'interfaccia da rilasciare.
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:() => void
Resi
-
Promise<void>
Chrome 116 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
requestAccess()
chrome.usb.requestAccess(
device: Device,
interfaceId: number,
callback?: function,
)
Questa funzione era specifica per ChromeOS e la sua chiamata su altre piattaforme non andava a buon fine. Ora questa operazione viene eseguita implicitamente nell'ambito di openDevice
e questa funzione restituirà true
su tutte le piattaforme.
Richiede l'accesso dal broker delle autorizzazioni a un dispositivo rivendicato da ChromeOS se l'interfaccia specificata sul dispositivo non è rivendicata.
Parametri
-
dispositivo
Il
Device
per cui richiedere l'accesso. -
interfaceId
numero
La particolare interfaccia richiesta.
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(success: boolean) => void
-
operazione riuscita
booleano
-
Resi
-
Promise<boolean>
Chrome 116 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
resetDevice()
chrome.usb.resetDevice(
handle: ConnectionHandle,
callback?: function,
)
Prova a reimpostare il dispositivo USB. Se il ripristino non riesce, l'handle di connessione specificato verrà chiuso e il dispositivo USB sembrerà essere disconnesso e poi ricollegato. In questo caso, è necessario chiamare di nuovo getDevices
o findDevices
per acquisire il dispositivo.
Parametri
-
handle
Un handle di connessione da reimpostare.
-
callback
function facoltativa
Il parametro
callback
ha il seguente aspetto:(success: boolean) => void
-
operazione riuscita
booleano
-
Resi
-
Promise<boolean>
Chrome 116 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
setConfiguration()
chrome.usb.setConfiguration(
handle: ConnectionHandle,
configurationValue: number,
callback?: function,
)
Seleziona una configurazione del dispositivo.
Questa funzione reimposta il dispositivo in modo efficace selezionando una delle configurazioni disponibili del dispositivo. Solo i valori di configurazione maggiori di 0
sono validi, tuttavia alcuni dispositivi con bug presentano una configurazione funzionante (0
), pertanto questo valore è consentito.
Parametri
-
handle
Una connessione aperta al dispositivo.
-
configurationValue
numero
-
callback
function facoltativa
Il parametro
callback
ha il seguente aspetto:() => void
Resi
-
Promise<void>
Chrome 116 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
setInterfaceAlternateSetting()
chrome.usb.setInterfaceAlternateSetting(
handle: ConnectionHandle,
interfaceNumber: number,
alternateSetting: number,
callback?: function,
)
seleziona un'impostazione alternativa in un'interfaccia rivendicata in precedenza.
Parametri
-
handle
Una connessione aperta al dispositivo su cui è stata rivendicata questa interfaccia.
-
interfaceNumber
numero
L'interfaccia da configurare.
-
alternateSetting
numero
L'impostazione alternativa da configurare.
-
callback
function facoltativa
Il parametro
callback
ha il seguente aspetto:() => void
Resi
-
Promise<void>
Chrome 116 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
Eventi
onDeviceAdded
chrome.usb.onDeviceAdded.addListener(
callback: function,
)
Evento generato quando un dispositivo viene aggiunto al sistema. Gli eventi vengono trasmessi solo alle app e alle estensioni che hanno l'autorizzazione ad accedere al dispositivo. L'autorizzazione potrebbe essere stata concessa al momento dell'installazione, quando l'utente ha accettato un'autorizzazione facoltativa (vedi permissions.request
) o tramite getUserSelectedDevices
.
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(device: Device) => void
-
dispositivo
-
onDeviceRemoved
chrome.usb.onDeviceRemoved.addListener(
callback: function,
)
Evento generato quando un dispositivo viene rimosso dal sistema. Consulta onDeviceAdded
per scoprire quali eventi vengono pubblicati.
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(device: Device) => void
-
dispositivo
-