Beschreibung
Verwenden Sie die chrome.usb
API, um mit verbundenen USB-Geräten zu interagieren. Diese API bietet Zugriff auf USB-Vorgänge aus dem Kontext einer App heraus. Mit dieser API können Apps als Treiber für Hardwaregeräte dienen. Von dieser API generierte Fehler werden gemeldet, indem runtime.lastError
festgelegt und der reguläre Callback der Funktion ausgeführt wird. Die regulären Parameter des Callbacks sind in diesem Fall nicht definiert.
Berechtigungen
usb
Typen
ConfigDescriptor
Attribute
-
Aktiv
boolean
Chrome 47 und höherIst das die aktive Konfiguration?
-
configurationValue
Zahl
Die Konfigurationsnummer.
-
Beschreibung
String optional
Beschreibung der Konfiguration.
-
extra_data
ArrayBuffer
Zusätzliche Deskriptordaten für diese Konfiguration.
-
Benutzeroberflächen
Verfügbare Oberflächen.
-
maxPower
Zahl
Die maximale von diesem Gerät benötigte Leistung in Milliamp (mA).
-
remoteWakeup
boolean
Das Gerät unterstützt die Remote-Aktivierung.
-
selfPowered
boolean
Das Gerät ist selbstbetrieben.
ConnectionHandle
Attribute
-
Handle (der)
Zahl
Ein intransparenter Alias, der diese Verbindung zum USB-Gerät und alle zugehörigen beanspruchten Schnittstellen und ausstehende Übertragungen darstellt. Jedes Mal, wenn das Gerät geöffnet wird, wird ein neuer Alias erstellt. Das Verbindungs-Handle unterscheidet sich von
Device.device
. -
productId
Zahl
Die Produkt-ID.
-
vendorId
Zahl
ID des Geräteherstellers
ControlTransferInfo
Attribute
-
Daten
ArrayBuffer optional
Die zu übertragenden Daten (nur bei Ausgabeübertragungen erforderlich).
-
direction
Die Umstiegsrichtung (
"in"
oder"out"
). -
Index
Zahl
Zum Feld
wIndex
(siehe Ebd). -
Länge
Nummer optional
Die maximale Anzahl der zu empfangenden Byte (nur bei Eingabeübertragungen erforderlich).
-
Empfänger; Beschenkter; beschenkter Nutzer
Das Übertragungsziel. Das von
index
angegebene Ziel muss angefordert werden, wenn"interface"
oder"endpoint"
. -
Request
Zahl
Informationen zum Feld
bRequest
, siehe Universal Serial Bus Specification Revision 1.1 § 9.3. -
requestType
Der Anfragetyp.
-
Time-out
Nummer optional
Chrome 43 und höherZeitlimit für Anfrage (in Millisekunden). Der Standardwert
0
gibt an, dass es keine Zeitüberschreitung gibt. -
value
Zahl
Zum Feld
wValue
(siehe Ebd).
Device
Attribute
-
Gerät
Zahl
Eine intransparente ID für das USB-Gerät. Er bleibt so lange unverändert, bis das Gerät vom Stromnetz getrennt wird.
-
manufacturerName
String
Chrome 46 und höherDer vom Gerät ausgelesene iManufacturer-String, falls verfügbar.
-
productId
Zahl
Die Produkt-ID.
-
productName
String
Chrome 46 und höherDie iProduct-Zeichenfolge, die vom Gerät ausgelesen wird, falls verfügbar.
-
serialNumber
String
Chrome 46 und höherDer aus dem Gerät gelesene iSerialNumber-String (falls verfügbar).
-
vendorId
Zahl
ID des Geräteherstellers
-
Version
Zahl
Chrome 51 und höherDie Geräteversion (Feld „bcdDevice“)
DeviceFilter
Attribute
-
interfaceClass
Nummer optional
USB-Schnittstellenklasse, entspricht jeder Schnittstelle auf dem Gerät.
-
interfaceProtocol
Nummer optional
USB-Schnittstellenprotokoll, wird nur überprüft, wenn die Unterklasse der Schnittstelle übereinstimmt.
-
interfaceSubclass
Nummer optional
Unterklasse der USB-Schnittstelle; wird nur geprüft, wenn die Schnittstellenklasse übereinstimmt.
-
productId
Nummer optional
Produkt-ID des Geräts; wird nur angekreuzt, wenn die Anbieter-ID übereinstimmt.
-
vendorId
Nummer optional
Anbieter-ID des Geräts.
DevicePromptOptions
Attribute
-
Filter
DeviceFilter[] optional
Liste der Geräte filtern, die dem Nutzer angezeigt werden Wenn mehrere Filter angegeben sind, werden Geräte angezeigt, die einem beliebigen Filter entsprechen.
-
mehrere
Boolescher Wert optional
Nutzern die Auswahl mehrerer Geräte erlauben
Direction
Direction, Recipient, RequestType und TransferType werden in der USB-Spezifikation den jeweiligen Namensnamen zugeordnet.
Enum
"out"
EndpointDescriptor
Attribute
-
Adresse
Zahl
Endpunktadresse.
-
direction
Umstiegsrichtung.
-
extra_data
ArrayBuffer
Zusätzliche Deskriptordaten, die mit diesem Endpunkt verknüpft sind.
-
maximumPacketSize
Zahl
Maximale Paketgröße.
-
pollingInterval
Nummer optional
Abfrageintervall (nur Unterbrechung und isochron)
-
Synchronisierung
SynchronizationType optional
Übertragungssynchronisierungsmodus (nur isochron)
-
Typ
Übertragungstyp.
-
Nutzung
UsageType optional
Hinweis zur Endpunktnutzung.
EnumerateDevicesAndRequestAccessOptions
Attribute
-
interfaceId
Nummer optional
Die Schnittstellen-ID, für die der Zugriff angefordert werden soll. Nur unter ChromeOS verfügbar. Auf andere Plattformen hat sie keine Auswirkungen.
-
productId
Zahl
Die Produkt-ID.
-
vendorId
Zahl
ID des Geräteherstellers
EnumerateDevicesOptions
Attribute
-
Filter
DeviceFilter[] optional
Es wird ein Gerät zurückgegeben, das einem bestimmten Filter entspricht. Bei einer leeren Filterliste werden alle Geräte zurückgegeben, für die die App die Berechtigung hat.
-
productId
Nummer optional
EingestelltEntspricht der Einstellung
DeviceFilter.productId
. -
vendorId
Nummer optional
EingestelltEntspricht der Einstellung
DeviceFilter.vendorId
.
GenericTransferInfo
Attribute
-
Daten
ArrayBuffer optional
Die zu übertragenden Daten (nur bei Ausgabeübertragungen erforderlich).
-
direction
Die Umstiegsrichtung (
"in"
oder"out"
). -
Endpunkt
Zahl
Die Zielendpunktadresse. Die Schnittstelle mit diesem Endpunkt muss beansprucht werden.
-
Länge
Nummer optional
Die maximale Anzahl der zu empfangenden Byte (nur bei Eingabeübertragungen erforderlich).
-
Time-out
Nummer optional
Chrome 43 und höherZeitlimit für Anfrage (in Millisekunden). Der Standardwert
0
gibt an, dass es keine Zeitüberschreitung gibt.
InterfaceDescriptor
Attribute
-
alternateSetting
Zahl
Die Einstellungsnummer für die alternative Schnittstelle (standardmäßig
0
-
Beschreibung
String optional
Beschreibung der Schnittstelle.
-
Endpunkte
Verfügbare Endpunkte.
-
extra_data
ArrayBuffer
Zusätzliche Deskriptordaten, die mit dieser Schnittstelle verknüpft sind.
-
interfaceClass
Zahl
Die USB-Schnittstellenklasse.
-
interfaceNumber
Zahl
Die Schnittstellennummer.
-
interfaceProtocol
Zahl
Das USB-Schnittstellenprotokoll.
-
interfaceSubclass
Zahl
Die Unterklasse der USB-Schnittstelle.
IsochronousTransferInfo
Attribute
-
packetLength
Zahl
Die Länge der einzelnen Pakete bei dieser Übertragung.
-
Pakete
Zahl
Die Gesamtzahl der Pakete bei dieser Übertragung.
-
transferInfo
Übertragungsparameter. Die in diesem Parameterblock angegebene Übertragungslänge oder der Datenpuffer wird entlang der
packetLength
-Grenzen aufgeteilt, um die einzelnen Pakete der Übertragung zu bilden.
Recipient
Enum
RequestType
Enum
SynchronizationType
Bei Unterbrechungs- und isochronen Modi werden SynchronizationType und UsageType den jeweiligen Namensnamen in der USB-Spezifikation zugeordnet.
Enum
TransferResultInfo
Attribute
-
Daten
ArrayBuffer optional
Die von einer Eingabeübertragung zurückgegebenen Daten.
undefined
für Ausgabeübertragungen. -
resultCode
Nummer optional
Der Wert
0
gibt an, dass die Übertragung erfolgreich war. Andere Werte zeigen einen Fehler an.
TransferType
Enum
UsageType
Enum
"explicitFeedback"
Methoden
bulkTransfer()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
Führt eine Bulk-Übertragung auf dem angegebenen Gerät durch.
Parameters
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
transferInfo
Die Übertragungsparameter.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(info: TransferResultInfo) => void
-
Info
-
Rückgaben
-
Promise<TransferResultInfo>
Chrome 116 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
claimInterface()
chrome.usb.claimInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
)
Beansprucht eine Schnittstelle auf einem USB-Gerät. Bevor Daten an eine Schnittstelle oder zugehörige Endpunkte übertragen werden können, muss die Schnittstelle beansprucht werden. Es kann immer nur ein Verbindungs-Handle eine Schnittstelle beanspruchen. Wenn die Schnittstelle bereits beansprucht wurde, schlägt dieser Aufruf fehl.
releaseInterface
sollte aufgerufen werden, wenn die Schnittstelle nicht mehr benötigt wird.
Parameters
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
interfaceNumber
Zahl
Die zu beanspruchende Schnittstelle.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:() => void
Rückgaben
-
Promise<void>
Chrome 116 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
closeDevice()
chrome.usb.closeDevice(
handle: ConnectionHandle,
callback?: function,
)
Schließt einen Verbindungs-Handle. Das Aufrufen von Vorgängen für einen Handle nach dem Schließen ist ein sicherer Vorgang. Es werden jedoch keine Aktionen ausgeführt.
Parameters
-
Handle (der)
Das
ConnectionHandle
, das geschlossen werden soll. -
callback
Funktion optional
Der Parameter
callback
sieht so aus:() => void
Rückgaben
-
Promise<void>
Chrome 116 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
controlTransfer()
chrome.usb.controlTransfer(
handle: ConnectionHandle,
transferInfo: ControlTransferInfo,
callback?: function,
)
Führt eine Übertragung der Steuerelemente auf dem angegebenen Gerät durch.
Kontrollübertragungen beziehen sich entweder auf das Gerät, eine Schnittstelle oder einen Endpunkt. Für Übertragungen an eine Schnittstelle oder einen Endpunkt muss die Schnittstelle beansprucht werden.
Parameters
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
transferInfo
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(info: TransferResultInfo) => void
-
Info
-
Rückgaben
-
Promise<TransferResultInfo>
Chrome 116 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
findDevices()
chrome.usb.findDevices(
options: EnumerateDevicesAndRequestAccessOptions,
callback?: function,
)
Hiermit werden USB-Geräte gesucht, die vom Anbieter, vom Produkt und (optional) über die Schnittstellen-IDs angegeben wurden. Das Öffnen der USB-Geräte wird gegebenenfalls durch die entsprechenden Berechtigungen ermöglicht.
Wenn die Zugriffsanfrage abgelehnt wird oder das Gerät nicht geöffnet werden kann, wird kein Verbindungs-Handle erstellt oder zurückgegeben.
Der Aufruf dieser Methode entspricht dem Aufruf von getDevices
gefolgt von openDevice
für jedes Gerät.
Parameters
-
Die Eigenschaften, nach denen auf den Zielgeräten gesucht werden soll.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(handles: ConnectionHandle[]) => void
-
Aliasse
-
Rückgaben
-
Promise<ConnectionHandle[]>
Chrome 116 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
getConfiguration()
chrome.usb.getConfiguration(
handle: ConnectionHandle,
callback?: function,
)
Ruft den Konfigurationsdeskriptor für die aktuell ausgewählte Konfiguration ab.
Parameters
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(config: ConfigDescriptor) => void
-
config
-
Rückgaben
-
Promise<ConfigDescriptor>
Chrome 116 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
getConfigurations()
chrome.usb.getConfigurations(
device: Device,
callback?: function,
)
Gibt den vollständigen Satz von Gerätekonfigurationsdeskriptoren zurück.
Parameters
-
Gerät
Der
Device
, aus dem die Deskriptoren abgerufen werden sollen. -
callback
Funktion optional
Der Parameter
callback
sieht so aus:(configs: ConfigDescriptor[]) => void
-
configs
-
Rückgaben
-
Promise<ConfigDescriptor[]>
Chrome 116 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
getDevices()
chrome.usb.getDevices(
options: EnumerateDevicesOptions,
callback?: function,
)
Listet verbundene USB-Geräte auf.
Parameters
Rückgaben
-
Promise<Gerät[]>
Chrome 116 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
getUserSelectedDevices()
chrome.usb.getUserSelectedDevices(
options: DevicePromptOptions,
callback?: function,
)
Stellt dem Nutzer eine Geräteauswahl dar und gibt die ausgewählten Device
zurück. Wenn der Nutzer die Auswahl abbricht, sind die Auswahlgeräte leer. Zum Anzeigen des Dialogfelds ist eine Nutzergeste erforderlich. Ohne eine Nutzergeste wird der Callback so ausgeführt, als ob der Nutzer den Vorgang abgebrochen hätte.
Parameters
Rückgaben
-
Promise<Gerät[]>
Chrome 116 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
interruptTransfer()
chrome.usb.interruptTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
Führt eine Unterbrechung der Übertragung auf dem angegebenen Gerät durch.
Parameters
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
transferInfo
Die Übertragungsparameter.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(info: TransferResultInfo) => void
-
Info
-
Rückgaben
-
Promise<TransferResultInfo>
Chrome 116 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
isochronousTransfer()
chrome.usb.isochronousTransfer(
handle: ConnectionHandle,
transferInfo: IsochronousTransferInfo,
callback?: function,
)
Führt einen isochronischen Transfer auf dem jeweiligen Gerät durch.
Parameters
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
transferInfo
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(info: TransferResultInfo) => void
-
Info
-
Rückgaben
-
Promise<TransferResultInfo>
Chrome 116 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
listInterfaces()
chrome.usb.listInterfaces(
handle: ConnectionHandle,
callback?: function,
)
Listet alle Schnittstellen auf einem USB-Gerät auf.
Parameters
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(descriptors: InterfaceDescriptor[]) => void
-
descriptors
-
Rückgaben
-
Promise<InterfaceDescriptor[]>
Chrome 116 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
openDevice()
chrome.usb.openDevice(
device: Device,
callback?: function,
)
Öffnet ein von getDevices
zurückgegebenes USB-Gerät.
Parameters
-
Gerät
Das zu öffnende
Device
. -
callback
Funktion optional
Der Parameter
callback
sieht so aus:(handle: ConnectionHandle) => void
-
Handle (der)
-
Rückgaben
-
Promise<ConnectionHandle>
Chrome 116 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
releaseInterface()
chrome.usb.releaseInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
)
Gibt eine beanspruchte Oberfläche frei.
Parameters
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
interfaceNumber
Zahl
Die freizugebende Schnittstelle.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:() => void
Rückgaben
-
Promise<void>
Chrome 116 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
requestAccess()
chrome.usb.requestAccess(
device: Device,
interfaceId: number,
callback?: function,
)
Diese Funktion war Chrome OS-spezifisch und ein Aufruf auf anderen Plattformen schlug fehl. Dieser Vorgang wird jetzt implizit als Teil von openDevice
ausgeführt und diese Funktion gibt auf allen Plattformen true
zurück.
Fordert vom Permission Broker Zugriff auf ein von Chrome OS beanspruchtes Gerät an, wenn die angegebene Schnittstelle auf dem Gerät nicht beansprucht wird.
Parameters
-
Gerät
Das
Device
, für das der Zugriff angefordert werden soll. -
interfaceId
Zahl
Die angefragte Schnittstelle.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(success: boolean) => void
-
Erfolgreich
boolean
-
Rückgaben
-
Promise<boolean>
Chrome 116 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
resetDevice()
chrome.usb.resetDevice(
handle: ConnectionHandle,
callback?: function,
)
Es wird versucht, das USB-Gerät zurückzusetzen. Wenn das Zurücksetzen fehlschlägt, wird der angegebene Ziehpunkt für die Verbindung geschlossen und das USB-Gerät wird als getrennt und dann wieder verbunden angezeigt. In diesem Fall muss getDevices
oder findDevices
noch einmal aufgerufen werden, um das Gerät zu erhalten.
Parameters
-
Handle (der)
Ein Verbindungs-Handle, der zurückgesetzt werden soll.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(success: boolean) => void
-
Erfolgreich
boolean
-
Rückgaben
-
Promise<boolean>
Chrome 116 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
setConfiguration()
chrome.usb.setConfiguration(
handle: ConnectionHandle,
configurationValue: number,
callback?: function,
)
Wählen Sie eine Gerätekonfiguration aus.
Durch diese Funktion wird das Gerät zurückgesetzt, indem eine der verfügbaren Konfigurationen des Geräts ausgewählt wird. Nur Konfigurationswerte größer als 0
sind gültig, aber einige fehlerhafte Geräte haben eine funktionierende Konfiguration (0
). Daher ist dieser Wert zulässig.
Parameters
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
configurationValue
Zahl
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:() => void
Rückgaben
-
Promise<void>
Chrome 116 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
setInterfaceAlternateSetting()
chrome.usb.setInterfaceAlternateSetting(
handle: ConnectionHandle,
interfaceNumber: number,
alternateSetting: number,
callback?: function,
)
Wählt eine alternative Einstellung auf einer zuvor beanspruchten Oberfläche aus.
Parameters
-
Handle (der)
Eine offene Verbindung zu dem Gerät, auf dem diese Schnittstelle beansprucht wurde.
-
interfaceNumber
Zahl
Die zu konfigurierende Schnittstelle.
-
alternateSetting
Zahl
Die alternative Einstellung, die konfiguriert werden soll.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:() => void
Rückgaben
-
Promise<void>
Chrome 116 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
Veranstaltungen
onDeviceAdded
chrome.usb.onDeviceAdded.addListener(
callback: function,
)
Ereignis, das generiert wird, wenn dem System ein Gerät hinzugefügt wird. Ereignisse werden nur an Apps und Erweiterungen übertragen, die auf das Gerät zugreifen dürfen. Die Berechtigung wurde möglicherweise bei der Installation erteilt, als der Nutzer eine optionale Berechtigung akzeptiert hat (siehe permissions.request
) oder über getUserSelectedDevices
.
Parameters
-
callback
Funktion
Der Parameter
callback
sieht so aus:(device: Device) => void
-
Gerät
-
onDeviceRemoved
chrome.usb.onDeviceRemoved.addListener(
callback: function,
)
Ereignis, das generiert wird, wenn ein Gerät aus dem System entfernt wird. Welche Ereignisse ausgelöst werden, sehen Sie unter onDeviceAdded
.