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 Callback der Funktion ausgeführt wird. Die regulären Parameter des Rückrufs sind in diesem Fall nicht definiert.
Berechtigungen
usbVerfügbarkeit
Typen
ConfigDescriptor
Properties
-
aktiv
boolean
Chrome 47 und höherIst dies die aktive Konfiguration?
-
configurationValue
Zahl
Die Konfigurationsnummer.
-
Beschreibung
String optional
Beschreibung der Konfiguration.
-
extra_data
ArrayBuffer
Zusätzliche Deskriptordaten, die mit dieser Konfiguration verknüpft sind.
-
Schnittstellen
Verfügbare Oberflächen.
-
maxPower
Zahl
Die maximale Leistungsaufnahme dieses Geräts in Milliampere (mA).
-
remoteWakeup
boolean
Das Gerät unterstützt das Remote-Aufwecken.
-
selfPowered
boolean
Das Gerät wird über eine eigene Stromquelle betrieben.
ConnectionHandle
Properties
-
Handle (der)
Zahl
Ein undurchsichtiges Handle, das diese Verbindung zum USB-Gerät und alle zugehörigen beanspruchten Schnittstellen und ausstehenden Übertragungen darstellt. Bei jedem Öffnen des Geräts 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
Properties
-
Daten
ArrayBuffer optional
Die zu übertragenden Daten (nur bei Ausgabetransfers erforderlich).
-
direction
Die Übertragungsrichtung (
"in"oder"out"). -
Index
Zahl
Das Feld
wIndex, siehe Ebd.. -
Länge
number optional
Die maximale Anzahl der zu empfangenden Bytes (nur für Eingabeübertragungen erforderlich).
-
Empfänger
Das Übertragungsziel. Das von
indexangegebene Ziel muss beansprucht werden, wenn"interface"oder"endpoint". -
Anfrage
Zahl
Das Feld
bRequestfinden Sie in der Universal Serial Bus Specification Revision 1.1, § 9.3. -
requestType
Der Anfragetyp.
-
Zeitüberschreitung
number optional
Chrome 43 und höherZeitlimit für Anfragen (in Millisekunden). Der Standardwert
0gibt kein Zeitlimit an. -
Wert
Zahl
Das Feld
wValue, siehe Ebd..
Device
Properties
-
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 iManufacturer-String, der vom Gerät gelesen wird, sofern verfügbar.
-
productId
Zahl
Die Produkt-ID.
-
productName (Produktname)
String
Chrome 46 und höherDer iProduct-String, der vom Gerät gelesen wird, sofern verfügbar.
-
serialNumber
String
Chrome 46 und höherDer iSerialNumber-String, der vom Gerät gelesen wurde, sofern verfügbar.
-
vendorId
Zahl
Die Geräteanbieter-ID.
-
Version
Zahl
Chrome 51 und höherDie Geräteversion (Feld „bcdDevice“).
DeviceFilter
Properties
-
interfaceClass
number optional
USB-Schnittstellenklasse, die mit jeder Schnittstelle auf dem Gerät übereinstimmt.
-
interfaceProtocol
number optional
USB-Schnittstellenprotokoll, wird nur geprüft, wenn die Schnittstellenunterklasse übereinstimmt.
-
interfaceSubclass
number optional
Unterklasse der USB-Schnittstelle, wird nur geprüft, wenn die Schnittstellenklasse übereinstimmt.
-
productId
number optional
Produkt-ID des Geräts, wird nur geprüft, wenn die Anbieter-ID übereinstimmt.
-
vendorId
number optional
Geräteanbieter-ID
DevicePromptOptions
Properties
-
Filter
DeviceFilter[] optional
Filtern Sie die Liste der Geräte, die dem Nutzer präsentiert werden. Wenn mehrere Filter angegeben werden, werden Geräte angezeigt, die mit einem der Filter übereinstimmen.
-
mehrere
Boolesch optional
Dem Nutzer erlauben, mehrere Geräte auszuwählen.
Direction
„Direction“, „Recipient“, „RequestType“ und „TransferType“ entsprechen ihren Namensvettern in der USB-Spezifikation.
Enum
"in"
"out"
EndpointDescriptor
Properties
-
Adresse
Zahl
Endpunktadresse.
-
direction
Übertragungsrichtung.
-
extra_data
ArrayBuffer
Zusätzliche Deskriptordaten, die mit diesem Endpunkt verknüpft sind.
-
maximumPacketSize
Zahl
Maximale Paketgröße.
-
pollingInterval
number optional
Abfrageintervall (nur Interrupt und isochron).
-
Synchronisierung
SynchronizationType optional
Synchronisationsmodus für die Übertragung (nur isochron).
-
Typ
Art der Anrufweiterleitung
-
Verwendung
UsageType optional
Hinweis zur Endpunktnutzung.
EnumerateDevicesAndRequestAccessOptions
Properties
-
interfaceId
number optional
Die Schnittstellen-ID, für die Zugriff angefordert werden soll. Nur unter ChromeOS verfügbar. Auf anderen Plattformen hat das keine Auswirkungen.
-
productId
Zahl
Die Produkt-ID.
-
vendorId
Zahl
Die Geräteanbieter-ID.
EnumerateDevicesOptions
Properties
-
Filter
DeviceFilter[] optional
Es wird ein Gerät zurückgegeben, das einem der angegebenen Filter entspricht. Bei einer leeren Filterliste werden alle Geräte zurückgegeben, für die die App eine Berechtigung hat.
-
productId
number optional
EingestelltEntspricht dem Festlegen von
DeviceFilter.productId. -
vendorId
number optional
EingestelltEntspricht dem Festlegen von
DeviceFilter.vendorId.
GenericTransferInfo
Properties
-
Daten
ArrayBuffer optional
Die zu übertragenden Daten (nur bei Ausgabetransfers erforderlich).
-
direction
Die Übertragungsrichtung (
"in"oder"out"). -
Endpunkt
Zahl
Die Zielendpunktadresse. Die Schnittstelle mit diesem Endpunkt muss beansprucht werden.
-
Länge
number optional
Die maximale Anzahl der zu empfangenden Bytes (nur für Eingabeübertragungen erforderlich).
-
Zeitüberschreitung
number optional
Chrome 43 und höherZeitlimit für Anfragen (in Millisekunden). Der Standardwert
0gibt kein Zeitlimit an.
InterfaceDescriptor
Properties
-
alternateSetting
Zahl
Die Nummer der alternativen Einstellung der Schnittstelle (Standardwert:
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
Properties
-
packetLength
Zahl
Die Länge der einzelnen Pakete bei dieser Übertragung.
-
Pakete
Zahl
Die Gesamtzahl der Pakete in 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
„device“
"interface"
"endpoint"
"other"
RequestType
Enum
„standard“
"class"
"vendor"
"reserved"
SynchronizationType
Im Interrupt- und isochronen Modus entsprechen SynchronizationType und UsageType ihren Namensvettern in der USB-Spezifikation.
Enum
„asynchron“
"adaptive"
„synchronous“
TransferResultInfo
Properties
-
Daten
ArrayBuffer optional
Die von einer Eingabeübertragung zurückgegebenen Daten.
undefinedfür Ausgabetransfers. -
resultCode
number optional
Der Wert
0gibt an, dass die Übertragung erfolgreich war. Andere Werte weisen auf einen Fehler hin.
TransferType
Enum
„control“
„interrupt“
„isochronous“
"bulk"
UsageType
Enum
"data"
„feedback“
"explicitFeedback"
"periodic"
„Benachrichtigung“
Methoden
bulkTransfer()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Führt eine Bulk-Übertragung auf dem angegebenen Gerät durch.
Parameter
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
transferInfo
Die Übertragungsparameter.
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:(info: TransferResultInfo) => void
-
Info
-
Ausgabe
-
Promise<TransferResultInfo>
Chrome 116 und höherPromises 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,
): Promise<void>
Fordert eine Schnittstelle auf einem USB-Gerät an. Bevor Daten an eine Schnittstelle oder zugehörige Endpunkte übertragen werden können, muss die Schnittstelle beansprucht werden. Jeweils nur ein Verbindungshandle kann 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.
Parameter
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
interfaceNumber
Zahl
Die Schnittstelle, die beansprucht werden soll.
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 116 und höherPromises 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,
): Promise<void>
Schließt ein Verbindungshandle. Das Aufrufen von Vorgängen für ein Handle, nachdem es geschlossen wurde, ist ein sicherer Vorgang, führt aber zu keiner Aktion.
Parameter
-
Handle (der)
Die
ConnectionHandlezum Schließen. -
callback
Funktion optional
Der Parameter
callbacksieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 116 und höherPromises 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,
): Promise<TransferResultInfo>
Führt eine Steuerungsübergabe auf dem angegebenen Gerät durch.
Die Übertragung der Steuerung bezieht 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
Funktion optional
Der Parameter
callbacksieht so aus:(info: TransferResultInfo) => void
-
Info
-
Ausgabe
-
Promise<TransferResultInfo>
Chrome 116 und höherPromises 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,
): Promise<ConnectionHandle[]>
Sucht nach USB-Geräten, die durch die Anbieter-, Produkt- und (optional) Schnittstellen-IDs angegeben werden, und öffnet sie, sofern die Berechtigungen dies zulassen.
Wenn die Zugriffsanfrage abgelehnt wird oder das Gerät keine Verbindung öffnen kann, wird kein Verbindungshandle erstellt oder zurückgegeben.
Das Aufrufen dieser Methode entspricht dem Aufrufen von getDevices gefolgt von openDevice für jedes Gerät.
Parameter
-
Die Eigenschaften, nach denen auf Zielgeräten gesucht werden soll.
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:(handles: ConnectionHandle[]) => void
-
Aliasse
-
Ausgabe
-
Promise<ConnectionHandle[]>
Chrome 116 und höherPromises 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,
): Promise<ConfigDescriptor>
Ruft den Konfigurationsdeskriptor für die aktuell ausgewählte Konfiguration ab.
Parameter
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:(config: ConfigDescriptor) => void
-
config
-
Ausgabe
-
Promise<ConfigDescriptor>
Chrome 116 und höherPromises 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,
): Promise<ConfigDescriptor[]>
Gibt alle Deskriptoren für die Gerätekonfiguration zurück.
Parameter
-
Gerät
Die
Device, aus der Deskriptoren abgerufen werden sollen. -
callback
Funktion optional
Der Parameter
callbacksieht so aus:(configs: ConfigDescriptor[]) => void
-
configs
-
Ausgabe
-
Promise<ConfigDescriptor[]>
Chrome 116 und höherPromises 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,
): Promise<Device[]>
Listet verbundene USB-Geräte auf.
Parameter
Ausgabe
-
Promise<Device[]>
Chrome 116 und höherPromises 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,
): Promise<Device[]>
Zeigt dem Nutzer eine Geräteauswahl an und gibt die ausgewählten Devices zurück. Wenn der Nutzer den Picker abbricht, sind die Geräte leer. Das Dialogfeld wird nur angezeigt, wenn der Nutzer eine Nutzergeste ausführt. Ohne Nutzergeste wird der Callback so ausgeführt, als hätte der Nutzer die Aktion abgebrochen.
Parameter
Ausgabe
-
Promise<Device[]>
Chrome 116 und höherPromises 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,
): Promise<TransferResultInfo>
Führt eine Interrupt-Übertragung auf dem angegebenen Gerät durch.
Parameter
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
transferInfo
Die Übertragungsparameter.
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:(info: TransferResultInfo) => void
-
Info
-
Ausgabe
-
Promise<TransferResultInfo>
Chrome 116 und höherPromises 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,
): Promise<TransferResultInfo>
Führt eine isochrone Übertragung auf dem angegebenen Gerät aus.
Parameter
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
transferInfo
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:(info: TransferResultInfo) => void
-
Info
-
Ausgabe
-
Promise<TransferResultInfo>
Chrome 116 und höherPromises 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,
): Promise<InterfaceDescriptor[]>
Listet alle Schnittstellen auf einem USB-Gerät auf.
Parameter
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:(descriptors: InterfaceDescriptor[]) => void
-
Deskriptoren
-
Ausgabe
-
Promise<InterfaceDescriptor[]>
Chrome 116 und höherPromises 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,
): Promise<ConnectionHandle>
Öffnet ein USB-Gerät, das von getDevices zurückgegeben wurde.
Parameter
-
Gerät
Die zu öffnende
Device. -
callback
Funktion optional
Der Parameter
callbacksieht so aus:(handle: ConnectionHandle) => void
-
Handle (der)
-
Ausgabe
-
Promise<ConnectionHandle>
Chrome 116 und höherPromises 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,
): Promise<void>
Gibt eine beanspruchte Schnittstelle frei.
Parameter
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
interfaceNumber
Zahl
Die freizugebende Schnittstelle.
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 116 und höherPromises 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,
): Promise<boolean>
Diese Funktion war spezifisch für ChromeOS und der Aufruf auf anderen Plattformen würde fehlschlagen. Dieser Vorgang wird jetzt implizit als Teil von openDevice ausgeführt und diese Funktion gibt auf allen Plattformen true zurück.
Fordert Zugriff vom Berechtigungsbroker auf ein Gerät an, 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 Schnittstelle.
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:(success: boolean) => void
-
Erfolg
boolean
-
Ausgabe
-
Promise<boolean>
Chrome 116 und höherPromises 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,
): Promise<boolean>
Versucht, das USB-Gerät zurückzusetzen. Wenn das Zurücksetzen fehlschlägt, wird das angegebene Verbindungshandle geschlossen und das USB-Gerät wird getrennt und dann wieder verbunden. In diesem Fall muss getDevices oder findDevices noch einmal aufgerufen werden, um das Gerät zu erhalten.
Parameter
-
Handle (der)
Ein Verbindungshandle, das zurückgesetzt werden soll.
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:(success: boolean) => void
-
Erfolg
boolean
-
Ausgabe
-
Promise<boolean>
Chrome 116 und höherPromises 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,
): Promise<void>
Wählen Sie eine Gerätekonfiguration aus.
Mit dieser Funktion wird das Gerät effektiv zurückgesetzt, indem eine der verfügbaren Konfigurationen des Geräts ausgewählt wird. Nur Konfigurationswerte, die größer als 0 sind, sind gültig. Einige fehlerhafte Geräte haben jedoch eine funktionierende Konfiguration 0. Daher ist dieser Wert zulässig.
Parameter
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
configurationValue
Zahl
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 116 und höherPromises 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,
): Promise<void>
Wählt eine alternative Einstellung für eine zuvor beanspruchte Schnittstelle aus.
Parameter
-
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
callbacksieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 116 und höherPromises 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 die Berechtigung haben, auf das Gerät zuzugreifen. 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
callbacksieht 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 finden Sie Informationen dazu, welche Ereignisse bereitgestellt werden.