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 le contexte d'une application. Elle permet aux applications de fonctionner comme pilotes pour des 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 seront pas définis.
Autorisations
usb
Types
ConfigDescriptor
Propriétés
-
actif
boolean
Chrome 47 ou version ultérieureS'agit-il de la configuration active ?
-
configurationValue
number
Numéro de configuration.
-
description
string facultatif
Description de la configuration.
-
extra_data
ArrayBuffer
Données de descripteur supplémentaires associées à cette configuration.
-
de commande
Interfaces disponibles
-
maxPower
number
Puissance maximale nécessaire à l'appareil en milliampères (mA).
-
remoteWakeup
boolean
L'appareil est compatible avec la fonctionnalité de réveil à distance.
-
selfPowered
boolean
L'appareil est auto-alimenté.
ConnectionHandle
Propriétés
-
handle
number
Poignée opaque représentant cette connexion à l'appareil USB et à toutes les interfaces revendiquées associées et les transferts en attente. Un identifiant est créé chaque fois que l'appareil est ouvert. L'identifiant de connexion est différent de
Device.device
. -
productId
number
ID produit.
-
vendorId
number
ID du fournisseur de l'appareil.
ControlTransferInfo
Propriétés
-
data
ArrayBuffer facultatif
Données à transmettre (requis uniquement par les transferts de sortie).
-
direction
Sens de la correspondance (
"in"
ou"out"
). -
index
number
Champ
wIndex
(voir Ibid). -
length
numéro facultatif
Nombre maximal d'octets à recevoir (requis uniquement pour les transferts d'entrée).
-
destinataire
Cible du transfert. La cible donnée par
index
doit être revendiquée si elle est définie sur"interface"
ou"endpoint"
. -
request
number
Champ
bRequest
, voir Universal Serial Bus Specification Révision 1.1 § 9.3 -
requestType
Type de requête.
-
pause
numéro facultatif
Chrome 43 et versions ultérieuresDélai avant expiration de la requête (en millisecondes). La valeur par défaut
0
indique l'absence de délai d'inactivité. -
valeur
number
Champ
wValue
(voir Ibid).
Device
Propriétés
-
appareil
number
ID opaque du périphérique USB. Il reste inchangé jusqu'au débranchement de l'appareil.
-
manufacturerName
chaîne
Chrome 46 ou version ultérieureChaîne iManufacturer lue à partir de l'appareil, si disponible.
-
productId
number
ID produit.
-
productName
chaîne
Chrome 46 ou version ultérieureChaîne iProduct lue à partir de l'appareil, le cas échéant.
-
serialNumber
chaîne
Chrome 46 ou version ultérieureLa chaîne iSerialNumber lue sur l'appareil, si elle est disponible.
-
vendorId
number
ID du fournisseur de l'appareil.
-
version
number
Chrome 51 et versions ultérieuresVersion de l'appareil (champ "bcdDevice").
DeviceFilter
Propriétés
-
interfaceClass
numéro facultatif
Classe d'interface USB, correspondant à 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 d'interface correspond.
-
productId
numéro facultatif
ID produit de l'appareil, vérifié uniquement si l'ID du fournisseur correspond.
-
vendorId
numéro facultatif
ID du fournisseur de l'appareil.
DevicePromptOptions
Propriétés
-
filtres
DeviceFilter[] facultatif
Filtrez la liste des appareils présentés à l'utilisateur. Si plusieurs filtres sont fournis, les appareils correspondant à l'un des filtres seront affichés.
-
plusieurs
Booléen facultatif
Autoriser l'utilisateur à sélectionner plusieurs appareils
Direction
Direction, Recipient, RequestType et TransferType sont tous mappés à leur nom dans la spécification USB.
Enum
"out"
EndpointDescriptor
Propriétés
-
adresse
number
Adresse du point de terminaison.
-
direction
Direction du transfert.
-
extra_data
ArrayBuffer
Données de descripteur supplémentaires associées à ce point de terminaison.
-
maximumPacketSize
number
Taille maximale des paquets.
-
pollingInterval
numéro facultatif
Intervalle d'interrogation (interruption et isochrone uniquement).
-
de l'audiodescription
SynchronizationType facultatif
Transfert du mode de synchronisation (isochrone uniquement).
-
type
Type de transfert.
-
utilisation
UsageType facultatif
Indice d'utilisation des points de terminaison.
EnumerateDevicesAndRequestAccessOptions
Propriétés
-
interfaceId
numéro facultatif
ID de l'interface à laquelle demander l'accès. Disponible uniquement sur Chrome OS. Cela n'a aucun effet sur les autres plates-formes.
-
productId
number
ID produit.
-
vendorId
number
ID du fournisseur de l'appareil.
EnumerateDevicesOptions
Propriétés
-
filtres
DeviceFilter[] facultatif
Un appareil correspondant à un filtre donné est renvoyé. Une liste de filtres vide affichera tous les appareils pour lesquels l'application est autorisée.
-
productId
numéro facultatif
ObsolèteÉquivaut à définir
DeviceFilter.productId
. -
vendorId
numéro facultatif
ObsolèteÉquivaut à définir
DeviceFilter.vendorId
.
GenericTransferInfo
Propriétés
-
data
ArrayBuffer facultatif
Données à transmettre (requis uniquement par les transferts de sortie).
-
direction
Sens de la correspondance (
"in"
ou"out"
). -
point de terminaison
number
Adresse du point de terminaison cible. L'interface contenant ce point de terminaison doit être revendiquée.
-
length
numéro facultatif
Nombre maximal d'octets à recevoir (requis uniquement pour les transferts d'entrée).
-
pause
numéro facultatif
Chrome 43 et versions ultérieuresDélai avant expiration de la requête (en millisecondes). La valeur par défaut
0
indique l'absence de délai d'inactivité.
InterfaceDescriptor
Propriétés
-
alternateSetting
number
Numéro du paramètre alternatif de l'interface (par défaut,
0
) -
description
string facultatif
Description de l'interface.
-
endpoints
Points de terminaison disponibles.
-
extra_data
ArrayBuffer
Données de descripteur supplémentaires associées à cette interface.
-
interfaceClass
number
Classe d'interface USB
-
interfaceNumber
number
Numéro d'interface.
-
interfaceProtocol
number
Protocole d'interface USB
-
interfaceSubclass
number
Sous-classe d'interface USB.
IsochronousTransferInfo
Propriétés
-
packetLength
number
Longueur de chacun des paquets de ce transfert.
-
paquets
number
Nombre total de paquets dans ce transfert.
-
transferInfo
Paramètres de transfert. La longueur de transfert ou le tampon de données spécifiés dans ce bloc de paramètres sont répartis le long des limites de
packetLength
pour former les paquets individuels du transfert.
Recipient
Enum
"device"
"interface"
"endpoint"
RequestType
Enum
"standard"
"class"
"vendor"
SynchronizationType
Pour les modes d'interruption et isoochre, les éléments SynchronizationType et UsageType correspondent à leurs homologues dans la spécification USB.
Enum
"adaptive"
TransferResultInfo
Propriétés
-
data
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
Enum
"control"
"isochronous"
"bulk"
UsageType
Enum
"data"
"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 ouverte à l'appareil.
-
transferInfo
Paramètres de transfert.
-
rappel
fonction facultative
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,
)
Revend une interface sur un appareil USB. Avant de pouvoir transférer des données vers une interface ou des points de terminaison associés, vous devez revendiquer l'interface. 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 ouverte à l'appareil.
-
interfaceNumber
number
Interface à revendiquer.
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :() => void
Renvoie
-
Promise<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 un handle de connexion. Appeler des opérations sur un handle après sa fermeture est une opération sûre, mais n'entraîne aucune action.
Paramètres
-
handle
Le
ConnectionHandle
à fermer. -
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :() => void
Renvoie
-
Promise<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 des commandes 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 ouverte à l'appareil.
-
transferInfo
-
rappel
fonction facultative
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 le fournisseur, le produit et (éventuellement) les ID d'interface, et détermine si les autorisations le permettent.
Si la demande d'accès est rejetée ou si l'appareil ne s'ouvre pas, aucun identifiant de connexion n'est créé ni renvoyé.
L'appel de cette méthode équivaut à appeler getDevices
suivi de openDevice
pour chaque appareil.
Paramètres
-
Propriétés à rechercher sur les appareils cibles.
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(handles: ConnectionHandle[]) => void
-
identifiants
-
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 ouverte à l'appareil.
-
rappel
fonction facultative
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
Le
Device
à partir duquel extraire les descripteurs. -
rappel
fonction facultative
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 à l'utilisateur un sélecteur d'appareil et les Device
sélectionnées. Si l'utilisateur annule, les appareils de sélection 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 sera exécuté comme si l'utilisateur avait annulé.
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 des interruptions sur l'appareil spécifié.
Paramètres
-
handle
Connexion ouverte à l'appareil.
-
transferInfo
Paramètres de transfert.
-
rappel
fonction facultative
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 spécifique.
Paramètres
-
handle
Connexion ouverte à l'appareil.
-
transferInfo
-
rappel
fonction facultative
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 ouverte à l'appareil.
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(descriptors: InterfaceDescriptor[]) => void
-
descriptors
-
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
fonction facultative
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,
)
Annule une interface revendiquée.
Paramètres
-
handle
Connexion ouverte à l'appareil.
-
interfaceNumber
number
Interface à publier.
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :() => void
Renvoie
-
Promise<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 à Chrome OS et l'appel sur d'autres plates-formes échouait. Cette opération est désormais exécutée implicitement dans le cadre de openDevice
et cette fonction renvoie true
sur toutes les plates-formes.
Demande à l'agent d'autorisations l'accès à un appareil revendiqué par Chrome OS si l'interface indiquée sur l'appareil n'est pas revendiquée.
Paramètres
-
appareil
Le
Device
auquel demander l'accès. -
interfaceId
number
L'interface demandée
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(success: boolean) => void
-
success
boolean
-
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, l'identifiant de connexion indiqué est fermé 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
fonction facultative
Le paramètre
callback
se présente comme suit :(success: boolean) => void
-
success
boolean
-
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. Toutefois, la configuration de certains appareils présentant des bugs est 0
fonctionnelle. Cette valeur est donc autorisée.
Paramètres
-
handle
Connexion ouverte à l'appareil.
-
configurationValue
number
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :() => void
Renvoie
-
Promise<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 sur une interface précédemment revendiquée.
Paramètres
-
handle
Connexion ouverte à l'appareil sur lequel cette interface a été revendiquée.
-
interfaceNumber
number
Interface à configurer.
-
alternateSetting
number
Autre paramètre à configurer.
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :() => void
Renvoie
-
Promise<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'auprès des applications et des 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
function
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 la section onDeviceAdded
pour connaître les événements qui sont diffusés.