Description
Utilisez l'API chrome.usb
pour interagir avec les appareils USB connectés. Cette API permet d'accéder aux opérations USB depuis une application. À l'aide de cette API, les applications peuvent fonctionner comme pilotes de périphériques matériels. Les erreurs générées par cette API sont signalées en définissant runtime.lastError
et en exécutant le rappel standard de la fonction. Dans ce cas, les paramètres standards du rappel ne sont pas définis.
Autorisations
usb
Types
ConfigDescriptor
Propriétés
-
actif
booléen
Chrome (version 47 ou ultérieure)S'agit-il de la configuration active ?
-
configurationValue
Nombre
Numéro de configuration.
-
description
chaîne facultatif
Description de la configuration.
-
extra_data
ArrayBuffer
Données de descripteur supplémentaires associées à cette configuration.
-
de commande
Interfaces disponibles
-
maxPower
Nombre
Puissance maximale requise par cet appareil en milliampères (mA).
-
remoteWakeup
booléen
L'appareil est compatible avec l'activation à distance.
-
selfPowered
booléen
L'appareil est autonome.
ConnectionHandle
Propriétés
-
handle
Nombre
Poignée opaque représentant cette connexion au périphérique USB et à toutes les interfaces revendiquées associées et aux transferts en attente. Un nouvel identifiant est créé chaque fois que l'appareil est ouvert. Le handle de connexion est différent de
Device.device
. -
productId
Nombre
ID du produit.
-
vendorId
Nombre
ID du fournisseur de l'appareil.
ControlTransferInfo
Propriétés
-
données
ArrayBuffer facultatif
Données à transmettre (requis uniquement pour les transferts de sortie).
-
direction
Sens de correspondance (
"in"
ou"out"
). -
index
Nombre
Pour le champ
wIndex
, consultez Ibid. -
longueur
numéro facultatif
Nombre maximal d'octets à recevoir (requis uniquement pour les transferts d'entrée).
-
destinataire
Cible de transfert. La cible indiquée par
index
doit être revendiquée si"interface"
ou"endpoint"
. -
request
Nombre
Le champ
bRequest
, consultez la section Révision 1.1 des spécifications du bus série universel paragraphe 9.3. -
requestType
Type de requête.
-
délai avant expiration
numéro facultatif
Chrome 43 ou version ultérieureDélai avant expiration de la requête (en millisecondes). La valeur par défaut
0
indique l'absence de délai avant expiration. -
valeur
Nombre
Pour le champ
wValue
, consultez Ibid.
Device
Propriétés
-
appareil
Nombre
Identifiant opaque du périphérique USB. Elle reste inchangée jusqu'à ce que l'appareil soit débranché.
-
manufacturerName
chaîne
Chrome (version 46 ou ultérieure)Chaîne iManufacturer lue sur l'appareil, si disponible.
-
productId
Nombre
ID du produit.
-
productName
chaîne
Chrome (version 46 ou ultérieure)Chaîne iProduct lue à partir de l'appareil, si disponible.
-
serialNumber
chaîne
Chrome (version 46 ou ultérieure)La chaîne iSerialNumber est lue sur l'appareil, si elle est disponible.
-
vendorId
Nombre
ID du fournisseur de l'appareil.
-
version
Nombre
Chrome (version 51 ou ultérieure)Version de l'appareil (champ bcdDevice).
DeviceFilter
Propriétés
-
interfaceClass
numéro facultatif
Classe d'interface USB, correspond à n'importe quelle interface de l'appareil.
-
interfaceProtocol
numéro facultatif
Protocole d'interface USB, coché uniquement si la sous-classe d'interface correspond.
-
interfaceSubclass
numéro facultatif
Sous-classe d'interface USB, cochée uniquement si la classe de l'interface correspond.
-
productId
numéro facultatif
ID produit de l'appareil, coché uniquement si l'ID du fournisseur correspond.
-
vendorId
numéro facultatif
ID du fournisseur de l'appareil.
DevicePromptOptions
Propriétés
-
filtres
DeviceFilter[] facultatif
Filtrer la liste des appareils présentés à l'utilisateur Si plusieurs filtres sont fournis, les appareils correspondant à l'un des filtres s'affichent.
-
plusieurs
Booléen facultatif
Autorisez l'utilisateur à sélectionner plusieurs appareils.
Direction
Direction, Recipient, RequestType et TransferType sont tous mappés avec leur nom dans la spécification USB.
Énumération
"dans"
"out"
EndpointDescriptor
Propriétés
-
adresse
Nombre
Adresse du point de terminaison.
-
direction
Transférez l'itinéraire.
-
extra_data
ArrayBuffer
Données de descripteur supplémentaires associées à ce point de terminaison.
-
maximumPacketSize
Nombre
Taille maximale des paquets.
-
pollingInterval
numéro facultatif
Intervalle d'interrogation (interruption et isochrone uniquement).
-
synchronisation
SynchronizationType facultatif
Mode de synchronisation du transfert (isochronique uniquement).
-
type
Type de transfert.
-
utilisation
UsageType facultatif
Conseil sur l'utilisation du point de terminaison.
EnumerateDevicesAndRequestAccessOptions
Propriétés
-
interfaceId
numéro facultatif
ID d'interface auquel demander l'accès. Disponible uniquement sur ChromeOS. Cela n'a aucune incidence sur les autres plates-formes.
-
productId
Nombre
ID du produit.
-
vendorId
Nombre
ID du fournisseur de l'appareil.
EnumerateDevicesOptions
Propriétés
-
filtres
DeviceFilter[] facultatif
Un appareil correspondant à un filtre donné sera renvoyé. Une liste de filtres vide affichera tous les appareils pour lesquels l'application est autorisée.
-
productId
numéro facultatif
<ph type="x-smartling-placeholder"></ph> ObsolèteCela équivaut à définir
DeviceFilter.productId
. -
vendorId
numéro facultatif
<ph type="x-smartling-placeholder"></ph> ObsolèteCela équivaut à définir
DeviceFilter.vendorId
.
GenericTransferInfo
Propriétés
-
données
ArrayBuffer facultatif
Données à transmettre (requis uniquement pour les transferts de sortie).
-
direction
Sens de correspondance (
"in"
ou"out"
). -
point de terminaison
Nombre
Adresse du point de terminaison cible. L'interface contenant ce point de terminaison doit être revendiquée.
-
longueur
numéro facultatif
Nombre maximal d'octets à recevoir (requis uniquement pour les transferts d'entrée).
-
délai avant expiration
numéro facultatif
Chrome 43 ou version ultérieureDélai avant expiration de la requête (en millisecondes). La valeur par défaut
0
indique l'absence de délai avant expiration.
InterfaceDescriptor
Propriétés
-
alternateSetting
Nombre
Numéro du paramètre alternatif de l'interface (
0
par défaut) -
description
chaîne facultatif
Description de l'interface.
-
endpoints
Points de terminaison disponibles.
-
extra_data
ArrayBuffer
Données de descripteur supplémentaires associées à cette interface.
-
interfaceClass
Nombre
Classe d'interface USB.
-
interfaceNumber
Nombre
Numéro d'interface.
-
interfaceProtocol
Nombre
Protocole d'interface USB.
-
interfaceSubclass
Nombre
Sous-classe d'interface USB.
IsochronousTransferInfo
Propriétés
-
packetLength
Nombre
Longueur de chacun des paquets de ce transfert.
-
paquets
Nombre
Nombre total de paquets dans ce transfert.
-
transferInfo
Paramètres de transfert. La longueur de transfert ou le tampon de données spécifié dans ce bloc de paramètres est divisé le long des limites
packetLength
pour former les paquets individuels du transfert.
Recipient
Énumération
"appareil"
"interface"
"point de terminaison"
"autre"
RequestType
Énumération
"standard"
"classe"
"vendor"
"réservé"
SynchronizationType
Pour les modes d'interruption et isochrone, les valeurs "SynchronizationType" et "UsageType" correspondent à leurs noms dans la spécification USB.
Énumération
"asynchrone"
"adaptatif"
"synchrone"
TransferResultInfo
Propriétés
-
données
ArrayBuffer facultatif
Données renvoyées par un transfert d'entrée.
undefined
pour les transferts de sortie. -
resultCode
numéro facultatif
La valeur
0
indique que le transfert a réussi. D'autres valeurs indiquent un échec.
TransferType
Énumération
"contrôle"
"interrompre"
"isochronous"
"groupé"
UsageType
Énumération
"données"
"commentaires"
"explicitFeedback"
"periodic"
"notification"
Méthodes
bulkTransfer()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
Effectue un transfert groupé sur l'appareil spécifié.
Paramètres
-
handle
Connexion à l'appareil ouverte.
-
transferInfo
Paramètres de transfert.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(info: TransferResultInfo) => void
-
infos
-
Renvoie
-
Promise<TransferResultInfo>
Chrome 116 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
claimInterface()
chrome.usb.claimInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
)
Permet de revendiquer une interface sur un périphérique USB. Pour que les données puissent être transférées vers une interface ou des points de terminaison associés, l'interface doit être revendiquée. Un seul handle de connexion peut revendiquer une interface à la fois. Si l'interface est déjà revendiquée, cet appel échouera.
releaseInterface
doit être appelé lorsque l'interface n'est plus nécessaire.
Paramètres
-
handle
Connexion à l'appareil ouverte.
-
interfaceNumber
Nombre
Interface à revendiquer.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:() => void
Renvoie
-
Promesse<void>
Chrome 116 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
closeDevice()
chrome.usb.closeDevice(
handle: ConnectionHandle,
callback?: function,
)
Ferme une poignée de connexion. L'appel d'opérations sur un handle après sa fermeture est une opération sûre, mais aucune action ne sera effectuée.
Paramètres
-
handle
Le
ConnectionHandle
à fermer. -
rappel
function facultatif
Le paramètre
callback
se présente comme suit:() => void
Renvoie
-
Promesse<void>
Chrome 116 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
controlTransfer()
chrome.usb.controlTransfer(
handle: ConnectionHandle,
transferInfo: ControlTransferInfo,
callback?: function,
)
Effectue un transfert de contrôle sur l'appareil spécifié.
Les transferts de contrôle font référence à l'appareil, à une interface ou à un point de terminaison. Les transferts vers une interface ou un point de terminaison nécessitent que l'interface soit revendiquée.
Paramètres
-
handle
Connexion à l'appareil ouverte.
-
transferInfo
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(info: TransferResultInfo) => void
-
infos
-
Renvoie
-
Promise<TransferResultInfo>
Chrome 116 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
findDevices()
chrome.usb.findDevices(
options: EnumerateDevicesAndRequestAccessOptions,
callback?: function,
)
Recherche les appareils USB spécifiés par les ID du fournisseur, du produit et de l'interface (éventuellement). Si les autorisations le permettent, ils peuvent être utilisés.
Si la demande d'accès est refusée ou si l'appareil ne peut pas être ouvert, aucun identifiant de connexion ne sera créé ni renvoyé.
Appeler cette méthode revient à appeler getDevices
, suivi de openDevice
pour chaque appareil.
Paramètres
-
Propriétés à rechercher sur les appareils cibles.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(handles: ConnectionHandle[]) => void
-
poignées
-
Renvoie
-
Promise<ConnectionHandle[]>
Chrome 116 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
getConfiguration()
chrome.usb.getConfiguration(
handle: ConnectionHandle,
callback?: function,
)
Récupère le descripteur de configuration pour la configuration actuellement sélectionnée.
Paramètres
-
handle
Connexion à l'appareil ouverte.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(config: ConfigDescriptor) => void
-
config
-
Renvoie
-
Promise<ConfigDescriptor>
Chrome 116 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
getConfigurations()
chrome.usb.getConfigurations(
device: Device,
callback?: function,
)
Renvoie l'ensemble complet des descripteurs de configuration de l'appareil.
Paramètres
-
appareil
La méthode
Device
pour extraire les descripteurs -
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(configs: ConfigDescriptor[]) => void
-
configs
-
Renvoie
-
Promise<ConfigDescriptor[]>
Chrome 116 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
getDevices()
chrome.usb.getDevices(
options: EnumerateDevicesOptions,
callback?: function,
)
Énumère les appareils USB connectés.
Paramètres
Renvoie
-
Promesse<Appareil[]>
Chrome 116 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
getUserSelectedDevices()
chrome.usb.getUserSelectedDevices(
options: DevicePromptOptions,
callback?: function,
)
Présente un sélecteur d'appareil à l'utilisateur et renvoie les Device
sélectionnés. Si l'utilisateur annule le sélecteur, les appareils seront vides. Un geste de l'utilisateur est nécessaire pour que la boîte de dialogue s'affiche. Sans geste de l'utilisateur, le rappel s'exécutera comme si l'utilisateur avait annulé l'appel.
Paramètres
Renvoie
-
Promesse<Appareil[]>
Chrome 116 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
interruptTransfer()
chrome.usb.interruptTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
Effectue un transfert d'interruption sur l'appareil spécifié.
Paramètres
-
handle
Connexion à l'appareil ouverte.
-
transferInfo
Paramètres de transfert.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(info: TransferResultInfo) => void
-
infos
-
Renvoie
-
Promise<TransferResultInfo>
Chrome 116 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
isochronousTransfer()
chrome.usb.isochronousTransfer(
handle: ConnectionHandle,
transferInfo: IsochronousTransferInfo,
callback?: function,
)
Effectue un transfert isochrone sur l'appareil concerné.
Paramètres
-
handle
Connexion à l'appareil ouverte.
-
transferInfo
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(info: TransferResultInfo) => void
-
infos
-
Renvoie
-
Promise<TransferResultInfo>
Chrome 116 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
listInterfaces()
chrome.usb.listInterfaces(
handle: ConnectionHandle,
callback?: function,
)
Liste toutes les interfaces d'un périphérique USB.
Paramètres
-
handle
Connexion à l'appareil ouverte.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(descriptors: InterfaceDescriptor[]) => void
-
descripteurs
-
Renvoie
-
Promise<InterfaceDescriptor[]>
Chrome 116 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
openDevice()
chrome.usb.openDevice(
device: Device,
callback?: function,
)
Ouvre un périphérique USB renvoyé par getDevices
.
Paramètres
-
appareil
Le
Device
à ouvrir. -
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(handle: ConnectionHandle) => void
-
handle
-
Renvoie
-
Promise<ConnectionHandle>
Chrome 116 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
releaseInterface()
chrome.usb.releaseInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
)
Libère une interface revendiquée.
Paramètres
-
handle
Connexion à l'appareil ouverte.
-
interfaceNumber
Nombre
Interface à publier.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:() => void
Renvoie
-
Promesse<void>
Chrome 116 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
requestAccess()
chrome.usb.requestAccess(
device: Device,
interfaceId: number,
callback?: function,
)
Cette fonction était spécifique à ChromeOS et son appel sur d'autres plates-formes échouait. Cette opération est désormais effectuée implicitement dans openDevice
, et cette fonction renvoie true
sur toutes les plates-formes.
Demande l'accès à un appareil revendiqué par Chrome OS auprès de l'agent d'autorisations si l'interface donnée sur l'appareil n'est pas revendiquée.
Paramètres
-
appareil
Le
Device
auquel demander l'accès -
interfaceId
Nombre
L'interface particulière demandée.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(success: boolean) => void
-
success
booléen
-
Renvoie
-
Promise<boolean>
Chrome 116 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
resetDevice()
chrome.usb.resetDevice(
handle: ConnectionHandle,
callback?: function,
)
Essaie de réinitialiser le périphérique USB. Si la réinitialisation échoue, la poignée de connexion donnée sera fermée et le périphérique USB semble être déconnecté, puis reconnecté. Dans ce cas, getDevices
ou findDevices
doit être appelé à nouveau pour acquérir l'appareil.
Paramètres
-
handle
Poignée de connexion à réinitialiser.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(success: boolean) => void
-
success
booléen
-
Renvoie
-
Promise<boolean>
Chrome 116 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
setConfiguration()
chrome.usb.setConfiguration(
handle: ConnectionHandle,
configurationValue: number,
callback?: function,
)
Sélectionnez une configuration d'appareil.
Cette fonction réinitialise efficacement l'appareil en sélectionnant l'une des configurations disponibles. Seules les valeurs de configuration supérieures à 0
sont valides. Cependant, certains appareils présentant des bugs ont une configuration 0
fonctionnelle. Cette valeur est donc autorisée.
Paramètres
-
handle
Connexion à l'appareil ouverte.
-
configurationValue
Nombre
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:() => void
Renvoie
-
Promesse<void>
Chrome 116 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
setInterfaceAlternateSetting()
chrome.usb.setInterfaceAlternateSetting(
handle: ConnectionHandle,
interfaceNumber: number,
alternateSetting: number,
callback?: function,
)
Sélectionne un autre paramètre dans une interface précédemment revendiquée.
Paramètres
-
handle
Une connexion ouverte à l'appareil sur lequel cette interface a été revendiquée.
-
interfaceNumber
Nombre
Interface à configurer.
-
alternateSetting
Nombre
Autre paramètre à configurer.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:() => void
Renvoie
-
Promesse<void>
Chrome 116 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.
Événements
onDeviceAdded
chrome.usb.onDeviceAdded.addListener(
callback: function,
)
Événement généré lorsqu'un appareil est ajouté au système. Les événements ne sont diffusés qu'aux applications et extensions autorisées à accéder à l'appareil. L'autorisation peut avoir été accordée au moment de l'installation, lorsque l'utilisateur a accepté une autorisation facultative (voir permissions.request
) ou via getUserSelectedDevices
.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit:(device: Device) => void
-
appareil
-
onDeviceRemoved
chrome.usb.onDeviceRemoved.addListener(
callback: function,
)
Événement généré lorsqu'un appareil est supprimé du système. Consultez onDeviceAdded
pour savoir quels événements sont diffusés.