Beschreibung
Mit der chrome.usb
API können Sie mit verbundenen USB-Geräten interagieren. Diese API bietet Zugriff auf USB-Vorgänge im Kontext einer App. Mit dieser API können Apps als Treiber für Hardwaregeräte fungieren. Fehler, die von dieser API generiert werden, werden gemeldet, indem runtime.lastError
festgelegt und der reguläre Rückruf der Funktion ausgeführt wird. Die regulären Parameter des Rückrufs 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 Descriptor-Daten, die mit dieser Konfiguration verknüpft sind.
-
Schnittstellen
Verfügbare Oberflächen.
-
maxPower
Zahl
Die maximale Leistung, die für dieses Gerät erforderlich ist, in Milliampere (mA).
-
remoteWakeup
boolean
Das Gerät unterstützt das Remote-Aufwecken.
-
selfPowered
boolean
Das Gerät ist selbstversorgend.
ConnectionHandle
Attribute
-
Handle (der)
Zahl
Ein nicht transparenter Handle, der diese Verbindung zum USB-Gerät und alle zugehörigen beanspruchten Schnittstellen und ausstehenden Übertragungen darstellt. Jedes Mal, wenn das Gerät geöffnet wird, wird ein neuer Handle erstellt. Der Verbindungs-Handle unterscheidet sich von
Device.device
. -
productId
Zahl
Die Produkt-ID.
-
vendorId
Zahl
Die Geräteanbieter-ID.
ControlTransferInfo
Attribute
-
Daten
ArrayBuffer optional
Die zu übertragenden Daten (nur für Ausgabeübertragungen erforderlich).
-
direction
Die Übertragungsrichtung (
"in"
oder"out"
). -
Index
Zahl
Das Feld
wIndex
, siehe ebd.. -
Länge
number optional
Die maximale Anzahl von Bytes, die empfangen werden sollen (nur bei Eingabeübertragungen erforderlich).
-
Empfänger; Beschenkter; beschenkter Nutzer
Das Übertragungsziel. Das mit
index
angegebene Ziel muss beansprucht werden, wenn"interface"
oder"endpoint"
festgelegt ist. -
Anfrage
Zahl
Das Feld
bRequest
, siehe Universal Serial Bus Specification Revision 1.1, Abschnitt 9.3. -
requestType
Der Anfragetyp.
-
Zeitüberschreitung
number optional
Chrome 43 und höherZeitlimit für Anfragen (in Millisekunden). Der Standardwert
0
gibt kein Zeitlimit an. -
Wert
Zahl
Das Feld
wValue
, siehe ebd..
Device
Attribute
-
Gerät
Zahl
Eine intransparente ID für das USB-Gerät. Sie bleibt unverändert, bis das Gerät vom Stromnetz getrennt wird.
-
manufacturerName
String
Chrome 46 und höherDer vom Gerät gelesene String „iManufacturer“, falls verfügbar.
-
productId
Zahl
Die Produkt-ID.
-
productName (Produktname)
String
Chrome 46 und höherDer vom Gerät gelesene iProduct-String, falls verfügbar.
-
serialNumber
String
Chrome 46 und höherDer vom Gerät gelesene String „iSerialNumber“, falls verfügbar.
-
vendorId
Zahl
Die Geräteanbieter-ID.
-
Version
Zahl
Chrome 51 und höherDie Geräteversion (Feld „bcdDevice“).
DeviceFilter
Attribute
-
interfaceClass
number optional
USB-Schnittstellenklasse, entspricht jeder Schnittstelle auf dem Gerät.
-
interfaceProtocol
number optional
USB-Schnittstellenprotokoll, das nur geprüft wird, wenn die Unterklasse der Schnittstelle übereinstimmt.
-
interfaceSubclass
number optional
USB-Unterklasse der Schnittstelle, wird nur geprüft, wenn die Schnittstellenklasse übereinstimmt.
-
productId
number optional
Geräteprodukt-ID, wird nur geprüft, wenn die Anbieter-ID übereinstimmt.
-
vendorId
number optional
Geräteanbieter-ID.
DevicePromptOptions
Attribute
-
Filter
DeviceFilter[] optional
Liste der Geräte filtern, die dem Nutzer angezeigt werden Wenn mehrere Filter angegeben werden, werden Geräte angezeigt, die mit einem der Filter übereinstimmen.
-
mehrere
boolescher Wert optional
Der Nutzer kann mehrere Geräte auswählen.
Direction
„Direction“, „Recipient“, „RequestType“ und „TransferType“ werden in der USB-Spezifikation mit den entsprechenden Namen zugeordnet.
Enum
"in"
„out“
EndpointDescriptor
Attribute
-
Adresse
Zahl
Endpunktadresse.
-
direction
Übertragungsrichtung.
-
extra_data
ArrayBuffer
Zusätzliche Beschreibungsdaten, die mit diesem Endpunkt verknüpft sind.
-
maximumPacketSize
Zahl
Maximale Paketgröße.
-
pollingInterval
number optional
Abfrageintervall (nur unterbrechungs- und isochron)
-
Synchronisierung
SynchronizationType optional
Übertragungssynchronisierungsmodus (nur isochron).
-
Typ
Art der Weiterleitung.
-
Nutzung
UsageType optional
Hinweis zur Endpunktnutzung.
EnumerateDevicesAndRequestAccessOptions
Attribute
-
interfaceId
number optional
Die ID der Benutzeroberfläche, für die Zugriff angefordert werden soll. Nur unter ChromeOS verfügbar. Sie haben keine Auswirkungen auf andere Plattformen.
-
productId
Zahl
Die Produkt-ID.
-
vendorId
Zahl
Die Geräteanbieter-ID.
EnumerateDevicesOptions
Attribute
-
Filter
DeviceFilter[] optional
Es wird ein Gerät zurückgegeben, das mit einem bestimmten Filter übereinstimmt. Bei einer leeren Filterliste werden alle Geräte zurückgegeben, für die die App eine Berechtigung hat.
-
productId
number optional
EingestelltEntspricht der Einstellung
DeviceFilter.productId
. -
vendorId
number optional
EingestelltEntspricht der Einstellung
DeviceFilter.vendorId
.
GenericTransferInfo
Attribute
-
Daten
ArrayBuffer optional
Die zu übertragenden Daten (nur für Ausgabeübertragungen erforderlich).
-
direction
Die Übertragungsrichtung (
"in"
oder"out"
). -
Endpunkt
Zahl
Die Adresse des Zielendpunkts. Die Schnittstelle mit diesem Endpunkt muss beansprucht werden.
-
Länge
number optional
Die maximale Anzahl von Bytes, die empfangen werden sollen (nur bei Eingabeübertragungen erforderlich).
-
Zeitüberschreitung
number optional
Chrome 43 und höherZeitlimit für Anfragen (in Millisekunden). Der Standardwert
0
gibt kein Zeitlimit an.
InterfaceDescriptor
Attribute
-
alternateSetting
Zahl
Die Nummer der alternativen Einstellung der Schnittstelle (Standardeinstellung:
0
-
Beschreibung
String optional
Beschreibung der Benutzeroberfläche.
-
Endpunkte
Verfügbare Endpunkte.
-
extra_data
ArrayBuffer
Zusätzliche Descriptor-Daten, 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 von
packetLength
-Grenzen aufgeteilt, um die einzelnen Pakete der Übertragung zu bilden.
Recipient
Enum
„device“
"interface"
„endpoint“
„Sonstiges“
RequestType
Enum
„standard“
"class"
"vendor"
„reserviert“
SynchronizationType
Für den Interrupt- und den isochronen Modus werden SynchronizationType und UsageType ihren Namensvettern in der USB-Spezifikation zugeordnet.
Enum
„asynchronous“
„adaptiv“
„synchronous“
TransferResultInfo
Attribute
-
Daten
ArrayBuffer optional
Die von einer Eingabeübertragung zurückgegebenen Daten.
undefined
für die Ausgabeübertragungen. -
resultCode
number optional
Der Wert
0
gibt an, dass die Übertragung erfolgreich war. Andere Werte geben einen Fehler an.
TransferType
Enum
„control“
„interrupt“
„isochron“
„bulk“
UsageType
Enum
"data"
"feedback"
"explicitFeedback"
„periodisch“
„Benachrichtigung“
Methoden
bulkTransfer()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
Führt eine Bulk-Übertragung auf dem angegebenen Gerät aus.
Parameter
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
transferInfo
Die Übertragungsparameter.
-
callback
function optional
Der Parameter
callback
sieht so aus:(info: TransferResultInfo) => void
-
Info
-
Gibt Folgendes zurück:
-
Promise<TransferResultInfo>
Chrome 116 und höherVersprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
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örigen Endpunkte übertragen werden können, muss die Schnittstelle beansprucht werden. Eine Schnittstelle kann immer nur von einem Verbindungs-Handle beansprucht werden. Wenn die Benutzeroberfläche bereits beansprucht wurde, schlägt dieser Aufruf fehl.
releaseInterface
sollte aufgerufen werden, wenn die Benutzeroberfläche nicht mehr benötigt wird.
Parameter
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
interfaceNumber
Zahl
Die Schnittstelle, für die der Anspruch erhoben werden soll.
-
callback
function optional
Der Parameter
callback
sieht so aus:() => void
Gibt Folgendes zurück:
-
Promise<void>
Chrome 116 und höherVersprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
closeDevice()
chrome.usb.closeDevice(
handle: ConnectionHandle,
callback?: function,
)
Schließt ein Verbindungs-Handle. Das Aufrufen von Vorgängen für einen Handle, nachdem er geschlossen wurde, ist ein sicherer Vorgang, führt aber zu keiner Aktion.
Parameter
-
Handle (der)
ConnectionHandle
zum Schließen. -
callback
function optional
Der Parameter
callback
sieht so aus:() => void
Gibt Folgendes zurück:
-
Promise<void>
Chrome 116 und höherVersprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
controlTransfer()
chrome.usb.controlTransfer(
handle: ConnectionHandle,
transferInfo: ControlTransferInfo,
callback?: function,
)
Führt eine Steuerungsübertragung auf dem angegebenen Gerät durch.
Steuerü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.
Parameter
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
transferInfo
-
callback
function optional
Der Parameter
callback
sieht so aus:(info: TransferResultInfo) => void
-
Info
-
Gibt Folgendes zurück:
-
Promise<TransferResultInfo>
Chrome 116 und höherVersprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
findDevices()
chrome.usb.findDevices(
options: EnumerateDevicesAndRequestAccessOptions,
callback?: function,
)
Sucht nach USB-Geräten, die anhand der Anbieter-, Produkt- und (optional) der Schnittstellen-IDs angegeben sind, und öffnet sie bei Berechtigung zur Verwendung.
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.
Parameter
-
Die Properties, nach denen auf Zielgeräten gesucht werden soll.
-
callback
function optional
Der Parameter
callback
sieht so aus:(handles: ConnectionHandle[]) => void
-
Aliasse
-
Gibt Folgendes zurück:
-
Promise<ConnectionHandle[]>
Chrome 116 und höherVersprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
getConfiguration()
chrome.usb.getConfiguration(
handle: ConnectionHandle,
callback?: function,
)
Ruft den Konfigurationsdeskriptor für die aktuell ausgewählte Konfiguration ab.
Parameter
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
callback
function optional
Der Parameter
callback
sieht so aus:(config: ConfigDescriptor) => void
-
config
-
Gibt Folgendes zurück:
-
Promise<ConfigDescriptor>
Chrome 116 und höherVersprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
getConfigurations()
chrome.usb.getConfigurations(
device: Device,
callback?: function,
)
Gibt die vollständigen Gerätekonfigurationsdeskriptoren zurück.
Parameter
-
Gerät
Die
Device
, von der Deskriptoren abgerufen werden sollen. -
callback
function optional
Der Parameter
callback
sieht so aus:(configs: ConfigDescriptor[]) => void
-
configs
-
Gibt Folgendes zurück:
-
Promise<ConfigDescriptor[]>
Chrome 116 und höherVersprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
getDevices()
chrome.usb.getDevices(
options: EnumerateDevicesOptions,
callback?: function,
)
Listet die verbundenen USB-Geräte auf.
Parameter
Gibt Folgendes zurück:
-
Promise<Device[]>
Chrome 116 und höherVersprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
getUserSelectedDevices()
chrome.usb.getUserSelectedDevices(
options: DevicePromptOptions,
callback?: function,
)
Zeigt dem Nutzer eine Geräteauswahl an und gibt die ausgewählten Device
zurück. Wenn der Nutzer die Auswahl abbricht, ist die Geräteauswahl leer. Damit das Dialogfeld angezeigt wird, ist eine Nutzergeste erforderlich. Ohne Nutzergeste wird der Rückruf ausgeführt, als hätte der Nutzer abgebrochen.
Parameter
Gibt Folgendes zurück:
-
Promise<Device[]>
Chrome 116 und höherVersprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
interruptTransfer()
chrome.usb.interruptTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
Führt eine Unterbrechungsübertragung auf dem angegebenen Gerät aus.
Parameter
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
transferInfo
Die Übertragungsparameter.
-
callback
function optional
Der Parameter
callback
sieht so aus:(info: TransferResultInfo) => void
-
Info
-
Gibt Folgendes zurück:
-
Promise<TransferResultInfo>
Chrome 116 und höherVersprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
isochronousTransfer()
chrome.usb.isochronousTransfer(
handle: ConnectionHandle,
transferInfo: IsochronousTransferInfo,
callback?: function,
)
Führt eine isochrone Übertragung auf dem jeweiligen Gerät aus.
Parameter
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
transferInfo
-
callback
function optional
Der Parameter
callback
sieht so aus:(info: TransferResultInfo) => void
-
Info
-
Gibt Folgendes zurück:
-
Promise<TransferResultInfo>
Chrome 116 und höherVersprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
listInterfaces()
chrome.usb.listInterfaces(
handle: ConnectionHandle,
callback?: function,
)
Listet alle Schnittstellen eines USB-Geräts auf.
Parameter
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
callback
function optional
Der Parameter
callback
sieht so aus:(descriptors: InterfaceDescriptor[]) => void
-
Deskriptoren
-
Gibt Folgendes zurück:
-
Promise<InterfaceDescriptor[]>
Chrome 116 und höherVersprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
openDevice()
chrome.usb.openDevice(
device: Device,
callback?: function,
)
Öffnet ein USB-Gerät, das von getDevices
zurückgegeben wurde.
Parameter
-
Gerät
Device
, um sie zu öffnen. -
callback
function optional
Der Parameter
callback
sieht so aus:(handle: ConnectionHandle) => void
-
Handle (der)
-
Gibt Folgendes zurück:
-
Promise<ConnectionHandle>
Chrome 116 und höherVersprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
releaseInterface()
chrome.usb.releaseInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
)
Eine beanspruchte Schnittstelle wird freigegeben.
Parameter
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
interfaceNumber
Zahl
Die zu veröffentlichende Benutzeroberfläche.
-
callback
function optional
Der Parameter
callback
sieht so aus:() => void
Gibt Folgendes zurück:
-
Promise<void>
Chrome 116 und höherVersprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
requestAccess()
chrome.usb.requestAccess(
device: Device,
interfaceId: number,
callback?: function,
)
Diese Funktion war ChromeOS-spezifisch und konnte auf anderen Plattformen nicht aufgerufen werden. Dieser Vorgang wird jetzt implizit als Teil von openDevice
ausgeführt und diese Funktion gibt auf allen Plattformen true
zurück.
Erfordert vom Berechtigungsbroker Zugriff auf ein Gerät, das von ChromeOS beansprucht wird, wenn die angegebene Schnittstelle auf dem Gerät nicht beansprucht wird.
Parameter
-
Gerät
Die
Device
, für die Sie Zugriff anfordern möchten. -
interfaceId
Zahl
Die angeforderte Benutzeroberfläche.
-
callback
function optional
Der Parameter
callback
sieht so aus:(success: boolean) => void
-
Erfolg
boolean
-
Gibt Folgendes zurück:
-
Promise<boolean>
Chrome 116 und höherVersprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
resetDevice()
chrome.usb.resetDevice(
handle: ConnectionHandle,
callback?: function,
)
Versucht, das USB-Gerät zurückzusetzen. Wenn das Zurücksetzen fehlschlägt, wird der angegebene Verbindungs-Handle geschlossen und das USB-Gerät wird getrennt und dann wieder verbunden. In diesem Fall müssen getDevices
oder findDevices
noch einmal aufgerufen werden, um das Gerät abzurufen.
Parameter
-
Handle (der)
Ein Verbindungs-Handle, der zurückgesetzt werden soll.
-
callback
function optional
Der Parameter
callback
sieht so aus:(success: boolean) => void
-
Erfolg
boolean
-
Gibt Folgendes zurück:
-
Promise<boolean>
Chrome 116 und höherVersprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
setConfiguration()
chrome.usb.setConfiguration(
handle: ConnectionHandle,
configurationValue: number,
callback?: function,
)
Wählen Sie eine Gerätekonfiguration aus.
Mit dieser Funktion wird das Gerät zurückgesetzt, indem eine der verfügbaren Konfigurationen ausgewählt wird. Nur Konfigurationswerte größer als 0
sind gültig. Einige fehlerhafte Geräte haben jedoch eine funktionierende Konfiguration von 0
. Daher ist dieser Wert zulässig.
Parameter
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
configurationValue
Zahl
-
callback
function optional
Der Parameter
callback
sieht so aus:() => void
Gibt Folgendes zurück:
-
Promise<void>
Chrome 116 und höherVersprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
setInterfaceAlternateSetting()
chrome.usb.setInterfaceAlternateSetting(
handle: ConnectionHandle,
interfaceNumber: number,
alternateSetting: number,
callback?: function,
)
Wählt eine alternative Einstellung für eine zuvor beanspruchte Oberfläche aus.
Parameter
-
Handle (der)
Eine offene Verbindung zum Gerät, auf dem diese Schnittstelle beansprucht wurde.
-
interfaceNumber
Zahl
Die zu konfigurierende Schnittstelle.
-
alternateSetting
Zahl
Die zu konfigurierende alternative Einstellung.
-
callback
function optional
Der Parameter
callback
sieht so aus:() => void
Gibt Folgendes zurück:
-
Promise<void>
Chrome 116 und höherVersprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
Ereignisse
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 gesendet, die zum Zugriff auf das Gerät berechtigt sind. Die Berechtigung wurde möglicherweise bei der Installation erteilt, als der Nutzer eine optionale Berechtigung akzeptiert hat (siehe permissions.request
) oder über getUserSelectedDevices
.
Parameter
-
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. Unter onDeviceAdded
sehen Sie, welche Ereignisse gesendet werden.