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. Utilizzando 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 del callback non saranno definiti.
Autorizzazioni
usbTipi
ConfigDescriptor
Proprietà
- 
    attivobooleano Chrome 47+È la configurazione attiva? 
- 
    configurationValuenumero Il numero di configurazione. 
- 
    descrizionestringa facoltativa Descrizione della configurazione. 
- 
    extra_dataArrayBuffer Dati descrittori aggiuntivi associati a questa configurazione. 
- 
    interfacceInterfacce disponibili. 
- 
    maxPowernumero La potenza massima necessaria a questo dispositivo in milliampere (mA). 
- 
    remoteWakeupbooleano Il dispositivo supporta la riattivazione da remoto. 
- 
    selfPoweredbooleano Il dispositivo è autoalimentato. 
ConnectionHandle
Proprietà
- 
    handlenumero Un handle opaco che rappresenta questa connessione al dispositivo USB e a tutte le interfacce rivendicate associate e ai trasferimenti in attesa. Ogni volta che il dispositivo viene aperto, viene creato un nuovo handle. L'handle della connessione è diverso da Device.device.
- 
    productIdnumero L'ID prodotto. 
- 
    vendorIdnumero L'ID fornitore del dispositivo. 
ControlTransferInfo
Proprietà
- 
    datiArrayBuffer facoltativo I dati da trasmettere (richiesti solo dai trasferimenti di output). 
- 
    directionLa direzione del trasferimento ( "in"o"out").
- 
    indicenumero Il campo wIndex, vedi Ibid.
- 
    lunghezzanumber (facoltativo) Il numero massimo di byte da ricevere (obbligatorio solo per i trasferimenti di input). 
- 
    destinatarioLa destinazione del trasferimento. Il target fornito da indexdeve essere rivendicato se"interface"o"endpoint".
- 
    richiestanumero Il campo bRequest, vedi Universal Serial Bus Specification Revision 1.1 § 9.3.
- 
    requestTypeIl tipo di richiesta. 
- 
    timeoutnumber (facoltativo) Chrome 43 o versioni successiveTimeout della richiesta (in millisecondi). Il valore predefinito 0indica che non è previsto alcun timeout.
- 
    valorenumero Il campo wValue, vedi Ibid.
Device
Proprietà
- 
    dispositivonumero Un ID opaco per il dispositivo USB. Rimane invariato finché il dispositivo non viene scollegato. 
- 
    manufacturerNamestringa Chrome 46 o versioni successiveLa stringa iManufacturer letta dal dispositivo, se disponibile. 
- 
    productIdnumero L'ID prodotto. 
- 
    productNamestringa Chrome 46 o versioni successiveLa stringa iProduct letta dal dispositivo, se disponibile. 
- 
    serialNumberstringa Chrome 46 o versioni successiveLa stringa iSerialNumber letta dal dispositivo, se disponibile. 
- 
    vendorIdnumero L'ID fornitore del dispositivo. 
- 
    versionenumero Chrome 51+La versione del dispositivo (campo bcdDevice). 
DeviceFilter
Proprietà
- 
    interfaceClassnumber (facoltativo) Classe di interfaccia USB, corrisponde a qualsiasi interfaccia sul dispositivo. 
- 
    interfaceProtocolnumber (facoltativo) Protocollo dell'interfaccia USB, selezionato solo se la sottoclasse dell'interfaccia corrisponde. 
- 
    interfaceSubclassnumber (facoltativo) Sottoclasse dell'interfaccia USB, selezionata solo se la classe dell'interfaccia corrisponde. 
- 
    productIdnumber (facoltativo) ID prodotto del dispositivo, controllato solo se l'ID fornitore corrisponde. 
- 
    vendorIdnumber (facoltativo) ID fornitore del dispositivo. 
DevicePromptOptions
Proprietà
- 
    filtriDeviceFilter[] facoltativo Filtra l'elenco dei dispositivi presentati all'utente. Se vengono forniti più filtri, verranno visualizzati i dispositivi che corrispondono a uno qualsiasi dei filtri. 
- 
    multiplebooleano facoltativo Consenti all'utente di selezionare più dispositivi. 
Direction
Direction, Recipient, RequestType e TransferType corrispondono ai rispettivi nomi all'interno della specifica USB.
Enum
"in" 
 
"out" 
 
EndpointDescriptor
Proprietà
- 
    indirizzonumero Indirizzo endpoint. 
- 
    directionDirezione del trasferimento. 
- 
    extra_dataArrayBuffer Dati descrittori aggiuntivi associati a questo endpoint. 
- 
    maximumPacketSizenumero Dimensione massima del pacchetto. 
- 
    pollingIntervalnumber (facoltativo) Intervallo di polling (solo interrupt e isocrono). 
- 
    sincronizzazioneSynchronizationType facoltativo Modalità di sincronizzazione del trasferimento (solo isocrona). 
- 
    tipoTipo di trasferimento. 
- 
    utilizzoUsageType facoltativo Suggerimento sull'utilizzo dell'endpoint. 
EnumerateDevicesAndRequestAccessOptions
Proprietà
- 
    interfaceIdnumber (facoltativo) L'ID dell'interfaccia a cui richiedere l'accesso. Disponibile solo su ChromeOS. Non ha alcun effetto su altre piattaforme. 
- 
    productIdnumero L'ID prodotto. 
- 
    vendorIdnumero L'ID fornitore del dispositivo. 
EnumerateDevicesOptions
Proprietà
- 
    filtriDeviceFilter[] facoltativo Verrà restituito un dispositivo corrispondente a un filtro specificato. Un elenco di filtri vuoto restituirà tutti i dispositivi per cui l'app dispone dell'autorizzazione. 
- 
    productIdnumber (facoltativo) ObsoletoEquivalente all'impostazione DeviceFilter.productId.
- 
    vendorIdnumber (facoltativo) ObsoletoEquivalente all'impostazione DeviceFilter.vendorId.
GenericTransferInfo
Proprietà
- 
    datiArrayBuffer facoltativo I dati da trasmettere (richiesti solo dai trasferimenti di output). 
- 
    directionLa direzione del trasferimento ( "in"o"out").
- 
    endpointnumero L'indirizzo dell'endpoint di destinazione. L'interfaccia contenente questo endpoint deve essere rivendicata. 
- 
    lunghezzanumber (facoltativo) Il numero massimo di byte da ricevere (obbligatorio solo per i trasferimenti di input). 
- 
    timeoutnumber (facoltativo) Chrome 43 o versioni successiveTimeout della richiesta (in millisecondi). Il valore predefinito 0indica che non è previsto alcun timeout.
InterfaceDescriptor
Proprietà
- 
    alternateSettingnumero Il numero di impostazione alternativa dell'interfaccia (il valore predefinito è 0
- 
    descrizionestringa facoltativa Descrizione dell'interfaccia. 
- 
    endpointsEndpoint disponibili. 
- 
    extra_dataArrayBuffer Dati descrittori aggiuntivi associati a questa interfaccia. 
- 
    interfaceClassnumero La classe di interfaccia USB. 
- 
    interfaceNumbernumero Il numero dell'interfaccia. 
- 
    interfaceProtocolnumero Il protocollo dell'interfaccia USB. 
- 
    interfaceSubclassnumero La sottoclasse dell'interfaccia USB. 
IsochronousTransferInfo
Proprietà
- 
    packetLengthnumero La lunghezza di ciascun pacchetto in questo trasferimento. 
- 
    pacchettinumero Il numero totale di pacchetti in questo trasferimento. 
- 
    transferInfoTrasferisci i parametri. La lunghezza del trasferimento o il buffer di dati specificato in questo blocco di parametri viene suddiviso lungo i limiti di packetLengthper formare i singoli pacchetti del trasferimento.
Recipient
Enum
"device" 
 
"interfaccia" 
 
"endpoint" 
 
"other" 
 
RequestType
Enum
"standard" 
 
"class" 
 
"vendor" 
 
"reserved" 
 
SynchronizationType
Per le modalità di interruzione e isocrona, SynchronizationType e UsageType corrispondono ai rispettivi omonimi all'interno della specifica USB.
Enum
"asynchronous" 
 
"adaptive" 
 
"synchronous" 
 
TransferResultInfo
Proprietà
- 
    datiArrayBuffer facoltativo I dati restituiti da un trasferimento di input. undefinedper i trasferimenti di output.
- 
    resultCodenumber (facoltativo) Un valore di 0indica che il trasferimento è andato a buon fine. Gli altri valori indicano un errore.
TransferType
Enum
"control" 
 
"interrompi" 
 
"isocrono" 
 
"bulk" 
 
UsageType
Enum
"data" 
 
"feedback" 
 
"explicitFeedback" 
 
"periodic" 
 
"notification" 
 
Metodi
bulkTransfer()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Esegue un trasferimento collettivo sul dispositivo specificato.
Parametri
- 
    handleUna connessione aperta al dispositivo. 
- 
    transferInfoI parametri di trasferimento. 
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:(info: TransferResultInfo) => void - 
    informazioni
 
- 
    
Resi
- 
            Promise<TransferResultInfo> Chrome 116+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback. 
claimInterface()
chrome.usb.claimInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
): Promise<void>
Rivendica un'interfaccia su un dispositivo USB. Prima che i dati possano essere trasferiti a un'interfaccia o a endpoint associati, l'interfaccia deve essere rivendicata. Un solo handle di connessione può rivendicare un'interfaccia in un dato momento. Se l'interfaccia è già stata rivendicata, la chiamata non andrà a buon fine.
releaseInterface deve essere chiamato quando l'interfaccia non è più necessaria.
Parametri
- 
    handleUna connessione aperta al dispositivo. 
- 
    interfaceNumbernumero L'interfaccia da rivendicare. 
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:() => void 
Resi
- 
            Promise<void> Chrome 116+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback. 
closeDevice()
chrome.usb.closeDevice(
handle: ConnectionHandle,
callback?: function,
): Promise<void>
Chiude un handle di connessione. L'invocazione di operazioni su un handle dopo la sua chiusura è un'operazione sicura, ma non viene eseguita alcuna azione.
Parametri
- 
    handleConnectionHandleper chiudere.
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:() => void 
Resi
- 
            Promise<void> Chrome 116+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback. 
controlTransfer()
chrome.usb.controlTransfer(
handle: ConnectionHandle,
transferInfo: ControlTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Esegue un trasferimento del controllo sul dispositivo specificato.
I trasferimenti di controllo si riferiscono al dispositivo, a un'interfaccia o a un endpoint. I trasferimenti a un'interfaccia o a un endpoint richiedono che l'interfaccia venga rivendicata.
Parametri
- 
    handleUna connessione aperta al dispositivo. 
- 
    transferInfo
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:(info: TransferResultInfo) => void - 
    informazioni
 
- 
    
Resi
- 
            Promise<TransferResultInfo> Chrome 116+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback. 
findDevices()
chrome.usb.findDevices(
options: EnumerateDevicesAndRequestAccessOptions,
callback?: function,
): Promise<ConnectionHandle[]>
Trova i dispositivi USB specificati dagli ID fornitore, prodotto e (facoltativamente) interfaccia e, se le autorizzazioni lo consentono, li apre per l'uso.
Se la richiesta di accesso viene rifiutata o non è possibile aprire una connessione al dispositivo, non verrà creato o restituito un handle di connessione.
La chiamata a questo metodo equivale alla chiamata a getDevices seguita da openDevice per ogni dispositivo.
Parametri
- 
    Le proprietà da cercare sui dispositivi di destinazione. 
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:(handles: ConnectionHandle[]) => void - 
    maniglie
 
- 
    
Resi
- 
            Promise<ConnectionHandle[]> Chrome 116+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback. 
getConfiguration()
chrome.usb.getConfiguration(
handle: ConnectionHandle,
callback?: function,
): Promise<ConfigDescriptor>
Ottiene il descrittore di configurazione per la configurazione attualmente selezionata.
Parametri
- 
    handleUna connessione aperta al dispositivo. 
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:(config: ConfigDescriptor) => void - 
    config
 
- 
    
Resi
- 
            Promise<ConfigDescriptor> Chrome 116+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback. 
getConfigurations()
chrome.usb.getConfigurations(
device: Device,
callback?: function,
): Promise<ConfigDescriptor[]>
Restituisce l'insieme completo di descrittori di configurazione del dispositivo.
Parametri
- 
    dispositivoIl Deviceda cui recuperare i descrittori.
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:(configs: ConfigDescriptor[]) => void - 
    configs
 
- 
    
Resi
- 
            Promise<ConfigDescriptor[]> Chrome 116+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback. 
getDevices()
chrome.usb.getDevices(
options: EnumerateDevicesOptions,
callback?: function,
): Promise<Device[]>
Elenca i dispositivi USB connessi.
Parametri
- 
    opzioniLe proprietà da cercare sui dispositivi di destinazione. 
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:(devices: Device[]) => void - 
    dispositivi
 
- 
    
Resi
- 
            Promise<Device[]> Chrome 116+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback. 
getUserSelectedDevices()
chrome.usb.getUserSelectedDevices(
options: DevicePromptOptions,
callback?: function,
): Promise<Device[]>
Mostra all'utente un selettore di dispositivi e restituisce gli Device selezionati. Se l'utente annulla la selezione, i dispositivi di prelievo saranno vuoti. Per visualizzare la finestra di dialogo è necessario un gesto dell'utente. Senza un gesto dell'utente, il callback verrà eseguito come se l'utente avesse annullato l'operazione.
Parametri
- 
    opzioniConfigurazione della finestra di dialogo del selettore di dispositivi. 
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:(devices: Device[]) => void - 
    dispositivi
 
- 
    
Resi
- 
            Promise<Device[]> Chrome 116+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback. 
interruptTransfer()
chrome.usb.interruptTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Esegue un trasferimento di interruzione sul dispositivo specificato.
Parametri
- 
    handleUna connessione aperta al dispositivo. 
- 
    transferInfoI parametri di trasferimento. 
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:(info: TransferResultInfo) => void - 
    informazioni
 
- 
    
Resi
- 
            Promise<TransferResultInfo> Chrome 116+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback. 
isochronousTransfer()
chrome.usb.isochronousTransfer(
handle: ConnectionHandle,
transferInfo: IsochronousTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Esegue un trasferimento isocrono sul dispositivo specifico.
Parametri
- 
    handleUna connessione aperta al dispositivo. 
- 
    transferInfo
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:(info: TransferResultInfo) => void - 
    informazioni
 
- 
    
Resi
- 
            Promise<TransferResultInfo> Chrome 116+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback. 
listInterfaces()
chrome.usb.listInterfaces(
handle: ConnectionHandle,
callback?: function,
): Promise<InterfaceDescriptor[]>
Elenca tutte le interfacce di un dispositivo USB.
Parametri
- 
    handleUna connessione aperta al dispositivo. 
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:(descriptors: InterfaceDescriptor[]) => void - 
    descrittori
 
- 
    
Resi
- 
            Promise<InterfaceDescriptor[]> Chrome 116+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback. 
openDevice()
chrome.usb.openDevice(
device: Device,
callback?: function,
): Promise<ConnectionHandle>
Apre un dispositivo USB restituito da getDevices.
Parametri
- 
    dispositivoDeviceda aprire.
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:(handle: ConnectionHandle) => void - 
    handle
 
- 
    
Resi
- 
            Promise<ConnectionHandle> Chrome 116+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback. 
releaseInterface()
chrome.usb.releaseInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
): Promise<void>
Rilascia un'interfaccia rivendicata.
Parametri
- 
    handleUna connessione aperta al dispositivo. 
- 
    interfaceNumbernumero L'interfaccia da rilasciare. 
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:() => void 
Resi
- 
            Promise<void> Chrome 116+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback. 
requestAccess()
chrome.usb.requestAccess(
device: Device,
interfaceId: number,
callback?: function,
): Promise<boolean>
Questa funzione era specifica di ChromeOS e la sua chiamata su altre piattaforme non andava a buon fine. Questa operazione viene ora 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 Chrome OS se l'interfaccia specificata sul dispositivo non è rivendicata.
Parametri
- 
    dispositivoL' Devicea cui richiedere l'accesso.
- 
    interfaceIdnumero L'interfaccia specifica richiesta. 
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:(success: boolean) => void - 
    operazione riuscitabooleano 
 
- 
    
Resi
- 
            Promise<boolean> Chrome 116+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback. 
resetDevice()
chrome.usb.resetDevice(
handle: ConnectionHandle,
callback?: function,
): Promise<boolean>
Tenta di ripristinare il dispositivo USB. Se il ripristino non riesce, l'handle di connessione specificato verrà chiuso e il dispositivo USB sembrerà disconnesso e poi riconnesso. In questo caso, è necessario chiamare di nuovo getDevices o findDevices per acquisire il dispositivo.
Parametri
- 
    handleUn handle di connessione da reimpostare. 
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:(success: boolean) => void - 
    operazione riuscitabooleano 
 
- 
    
Resi
- 
            Promise<boolean> Chrome 116+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback. 
setConfiguration()
chrome.usb.setConfiguration(
handle: ConnectionHandle,
configurationValue: number,
callback?: function,
): Promise<void>
Seleziona una configurazione del dispositivo.
Questa funzione ripristina effettivamente il dispositivo selezionando una delle configurazioni disponibili. Sono validi solo i valori di configurazione superiori a 0, tuttavia alcuni dispositivi con bug hanno una configurazione funzionante 0, pertanto questo valore è consentito.
Parametri
- 
    handleUna connessione aperta al dispositivo. 
- 
    configurationValuenumero 
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:() => void 
Resi
- 
            Promise<void> Chrome 116+Le promesse sono supportate solo per Manifest V3 e versioni successive, le altre piattaforme devono utilizzare i callback. 
setInterfaceAlternateSetting()
chrome.usb.setInterfaceAlternateSetting(
handle: ConnectionHandle,
interfaceNumber: number,
alternateSetting: number,
callback?: function,
): Promise<void>
Seleziona un'impostazione alternativa su un'interfaccia rivendicata in precedenza.
Parametri
- 
    handleUna connessione aperta al dispositivo in cui è stata rivendicata questa interfaccia. 
- 
    interfaceNumbernumero L'interfaccia da configurare. 
- 
    alternateSettingnumero L'impostazione alternativa da configurare. 
- 
    callbackfunzione facoltativa Il parametro callbackha il seguente aspetto:() => void 
Resi
- 
            Promise<void> Chrome 116+Le promesse sono supportate solo per Manifest V3 e versioni successive, 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 per 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
- 
    callbackfunzione Il parametro callbackha 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
- 
    callbackfunzione Il parametro callbackha il seguente aspetto:(device: Device) => void - 
    dispositivo
 
-