Beschreibung
Verwenden Sie die chrome.usb API, um mit verbundenen USB-Geräten zu 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 durch Festlegen von runtime.lastError und Ausführen des regulären Callbacks der Funktion gemeldet. Die regulären Parameter des Callbacks sind in diesem Fall nicht definiert.
Berechtigungen
usbVerfügbarkeit
Typen
ConfigDescriptor
Attribute
-
aktiv
boolean
Chrome 47 oder 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 Leistung, die dieses Gerät benötigt, in Milliampere (mA).
-
remoteWakeup
boolean
Das Gerät unterstützt Remote-Wakeup.
-
selfPowered
boolean
Das Gerät ist selbstversorgend.
ConnectionHandle
Attribute
-
Handle (der)
Zahl
Ein opakes 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 neues Handle erstellt. Das Verbindungshandle unterscheidet sich von
Device.device. -
productId
Zahl
Die Produkt-ID.
-
vendorId
Zahl
Die Anbieter-ID des Geräts.
ControlTransferInfo
Attribute
-
Daten
ArrayBuffer optional
Die zu übertragenden Daten (nur für ausgehende Übertragungen erforderlich).
-
direction
Die Übertragungsrichtung (
"in"oder"out"). -
Index
Zahl
Das Feld
wIndex, siehe Ebd.. -
Länge
number optional
Die maximale Anzahl von Byte, die empfangen werden sollen (nur für Eingabeübertragungen erforderlich).
-
Empfänger
Das Übertragungsziel. Das durch
indexangegebene Ziel muss beansprucht werden, wenn"interface"oder"endpoint". -
Anfrage
Zahl
Das Feld
bRequest, siehe Universal Serial Bus Specification Revision 1.1, § 9.3. -
requestType
Der Anfragetyp.
-
Zeitüberschreitung
number optional
Chrome 43 oder höherZeitlimit für die Anfrage (in Millisekunden). Der Standardwert
0bedeutet, dass kein Zeitlimit festgelegt ist. -
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 oder höherDer vom Gerät gelesene iManufacturer-String, falls verfügbar.
-
productId
Zahl
Die Produkt-ID.
-
productName (Produktname)
String
Chrome 46 oder höherDer vom Gerät gelesene iProduct-String, falls verfügbar.
-
serialNumber
String
Chrome 46 oder höherDer vom Gerät gelesene iSerialNumber-String, falls verfügbar.
-
vendorId
Zahl
Die Anbieter-ID des Geräts.
-
Version
Zahl
Chrome 51 oder höherDie Geräteversion (Feld „bcdDevice“).
DeviceFilter
Attribute
-
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
Attribute
-
Filter
DeviceFilter[] optional
Filtern Sie die Liste der Geräte, die dem Nutzer angezeigt werden. Wenn mehrere Filter angegeben sind, werden Geräte angezeigt, die mit einem der Filter übereinstimmen.
-
mehrere
Boolesch optional
Erlaube dem Nutzer, mehrere Geräte auszuwählen.
Direction
Direction, Recipient, RequestType und TransferType entsprechen den gleichnamigen Elementen in der USB-Spezifikation.
Enum
"in"
"out"
EndpointDescriptor
Attribute
-
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
Polling-Intervall (nur Interrupt und isochron).
-
Synchronisierung
SynchronizationType optional
Synchronisierungsmodus für die Übertragung (nur isochron).
-
Typ
Übertragungstyp.
-
Verwendung
UsageType optional
Hinweis zur Endpunktnutzung.
EnumerateDevicesAndRequestAccessOptions
Attribute
-
interfaceId
number optional
Die Schnittstellen-ID, für die Zugriff angefordert werden soll. Nur unter Chrome OS verfügbar. Sie haben keine Auswirkungen auf andere Plattformen.
-
productId
Zahl
Die Produkt-ID.
-
vendorId
Zahl
Die Anbieter-ID des Geräts.
EnumerateDevicesOptions
Attribute
-
Filter
DeviceFilter[] optional
Es wird ein Gerät zurückgegeben, das einem der angegebenen Filter entspricht. Wenn die Filterliste leer ist, 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
Attribute
-
Daten
ArrayBuffer optional
Die zu übertragenden Daten (nur für ausgehende Übertragungen erforderlich).
-
direction
Die Übertragungsrichtung (
"in"oder"out"). -
Endpunkt
Zahl
Die Zielendpunktadresse. Die Schnittstelle, die diesen Endpunkt enthält, muss beansprucht werden.
-
Länge
number optional
Die maximale Anzahl von Byte, die empfangen werden sollen (nur für Eingabeübertragungen erforderlich).
-
Zeitüberschreitung
number optional
Chrome 43 oder höherZeitlimit für die Anfrage (in Millisekunden). Der Standardwert
0bedeutet, dass kein Zeitlimit festgelegt ist.
InterfaceDescriptor
Attribute
-
alternateSetting
Zahl
Die Nummer der alternativen Einstellung der Schnittstelle (Standardwert ist
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 in 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
Für den Interrupt- und den isochronen Modus werden „SynchronizationType“ und „UsageType“ ihren Namensvettern in der USB-Spezifikation zugeordnet.
Enum
"asynchronous"
"adaptive"
"synchronous"
TransferResultInfo
Attribute
-
Daten
ArrayBuffer optional
Die von einer Eingabeübertragung zurückgegebenen Daten.
undefinedfür Ausgabeübertragungen. -
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"
"notification"
Methoden
bulkTransfer()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
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
callbacksieht so aus:(info: TransferResultInfo) => void
-
Info
-
Ausgabe
-
Promise<TransferResultInfo>
Chrome 116 oder 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>
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. Eine Schnittstelle kann jeweils nur von einem Verbindungshandle beansprucht werden. Wenn die Schnittstelle bereits beansprucht wird, 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
function optional
Der Parameter
callbacksieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 116 oder 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 zu schließende
ConnectionHandle. -
callback
function optional
Der Parameter
callbacksieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 116 oder 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übertragung auf dem angegebenen Gerät aus.
Steuerungsü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
callbacksieht so aus:(info: TransferResultInfo) => void
-
Info
-
Ausgabe
-
Promise<TransferResultInfo>
Chrome 116 oder 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 sind, und öffnet sie zur Verwendung, wenn die Berechtigungen dies zulassen.
Wenn die Zugriffsanfrage abgelehnt wird oder das Gerät nicht geöffnet werden kann, wird kein Verbindungshandle erstellt oder zurückgegeben.
Der Aufruf dieser Methode entspricht dem Aufruf von getDevices gefolgt von openDevice für jedes Gerät.
Parameter
-
Die Eigenschaften, nach denen auf Zielgeräten gesucht werden soll.
-
callback
function optional
Der Parameter
callbacksieht so aus:(handles: ConnectionHandle[]) => void
-
Aliasse
-
Ausgabe
-
Promise<ConnectionHandle[]>
Chrome 116 oder 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
function optional
Der Parameter
callbacksieht so aus:(config: ConfigDescriptor) => void
-
config
-
Ausgabe
-
Promise<ConfigDescriptor>
Chrome 116 oder 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 den vollständigen Satz von Gerätekonfigurationsdeskriptoren zurück.
Parameter
-
Gerät
Der
Device, aus dem Deskriptoren abgerufen werden sollen. -
callback
function optional
Der Parameter
callbacksieht so aus:(configs: ConfigDescriptor[]) => void
-
configs
-
Ausgabe
-
Promise<ConfigDescriptor[]>
Chrome 116 oder 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 oder 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 die Auswahl abbricht, ist die Liste der Geräte leer. Damit das Dialogfeld angezeigt wird, ist eine Nutzergeste erforderlich. Ohne Nutzergeste wird der Callback so ausgeführt, als hätte der Nutzer abgebrochen.
Parameter
Ausgabe
-
Promise<Device[]>
Chrome 116 oder 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 aus.
Parameter
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
transferInfo
Die Übertragungsparameter.
-
callback
function optional
Der Parameter
callbacksieht so aus:(info: TransferResultInfo) => void
-
Info
-
Ausgabe
-
Promise<TransferResultInfo>
Chrome 116 oder 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
function optional
Der Parameter
callbacksieht so aus:(info: TransferResultInfo) => void
-
Info
-
Ausgabe
-
Promise<TransferResultInfo>
Chrome 116 oder 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
function optional
Der Parameter
callbacksieht so aus:(descriptors: InterfaceDescriptor[]) => void
-
Deskriptoren
-
Ausgabe
-
Promise<InterfaceDescriptor[]>
Chrome 116 oder 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
function optional
Der Parameter
callbacksieht so aus:(handle: ConnectionHandle) => void
-
Handle (der)
-
Ausgabe
-
Promise<ConnectionHandle>
Chrome 116 oder 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
function optional
Der Parameter
callbacksieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 116 oder 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 ChromeOS-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 Berechtigungs-Broker Zugriff auf ein von ChromeOS beanspruchtes Gerät an, wenn die angegebene Schnittstelle auf dem Gerät nicht beansprucht wird.
Parameter
-
Gerät
Die
Device, für die Zugriff angefordert werden soll. -
interfaceId
Zahl
Die angeforderte Schnittstelle.
-
callback
function optional
Der Parameter
callbacksieht so aus:(success: boolean) => void
-
Erfolg
boolean
-
Ausgabe
-
Promise<boolean>
Chrome 116 oder 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 scheinbar getrennt und dann wieder verbunden. In diesem Fall muss getDevices oder findDevices noch einmal aufgerufen werden, um das Gerät zu erfassen.
Parameter
-
Handle (der)
Ein Verbindungshandle, das zurückgesetzt werden soll.
-
callback
function optional
Der Parameter
callbacksieht so aus:(success: boolean) => void
-
Erfolg
boolean
-
Ausgabe
-
Promise<boolean>
Chrome 116 oder 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 größer als 0 sind gültig. Einige fehlerhafte Geräte haben jedoch eine funktionierende Konfiguration 0, sodass dieser Wert zulässig ist.
Parameter
-
Handle (der)
Eine offene Verbindung zum Gerät.
-
configurationValue
Zahl
-
callback
function optional
Der Parameter
callbacksieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 116 oder 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 zum Gerät, auf dem diese Schnittstelle beansprucht wurde.
-
interfaceNumber
Zahl
Die zu konfigurierende Schnittstelle.
-
alternateSetting
Zahl
Die alternative Einstellung, die konfiguriert werden soll.
-
callback
function optional
Der Parameter
callbacksieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 116 oder 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 ein Gerät dem System hinzugefügt wird. Ereignisse werden nur an Apps und Erweiterungen übertragen, die Zugriff auf das Gerät haben. 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 übermittelt werden.