chrome.usb

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öher

    Ist 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öher

    Zeitlimit 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öher

    Der vom Gerät ausgelesene iManufacturer-String, falls verfügbar.

  • productId

    Zahl

    Die Produkt-ID.

  • productName

    String

    Chrome 46 und höher

    Die iProduct-Zeichenfolge, die vom Gerät ausgelesen wird, falls verfügbar.

  • serialNumber

    String

    Chrome 46 und höher

    Der aus dem Gerät gelesene iSerialNumber-String (falls verfügbar).

  • vendorId

    Zahl

    ID des Geräteherstellers

  • Version

    Zahl

    Chrome 51 und höher

    Die 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

    Übertragungssynchronisierungsmodus (nur isochron)

  • Ü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

    Eingestellt

    Entspricht der Einstellung DeviceFilter.productId.

  • vendorId

    Nummer optional

    Eingestellt

    Entspricht 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öher

    Zeitlimit 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()

Versprechen
chrome.usb.bulkTransfer(
  handle: ConnectionHandle,
  transferInfo: GenericTransferInfo,
  callback?: function,
)

Führt eine Bulk-Übertragung auf dem angegebenen Gerät durch.

Parameters

Rückgaben

  • Chrome 116 oder höher

    Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.

claimInterface()

Versprechen
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öher

    Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.

closeDevice()

Versprechen
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

Rückgaben

  • Promise<void>

    Chrome 116 oder höher

    Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.

controlTransfer()

Versprechen
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

Rückgaben

  • Chrome 116 oder höher

    Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.

findDevices()

Versprechen
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

Rückgaben

  • Promise<ConnectionHandle[]>

    Chrome 116 oder höher

    Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.

getConfiguration()

Versprechen
chrome.usb.getConfiguration(
  handle: ConnectionHandle,
  callback?: function,
)

Ruft den Konfigurationsdeskriptor für die aktuell ausgewählte Konfiguration ab.

Parameters

Rückgaben

  • Chrome 116 oder höher

    Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.

getConfigurations()

Versprechen Chrome 47 oder höher
chrome.usb.getConfigurations(
  device: Device,
  callback?: function,
)

Gibt den vollständigen Satz von Gerätekonfigurationsdeskriptoren zurück.

Parameters

Rückgaben

  • Promise<ConfigDescriptor[]>

    Chrome 116 oder höher

    Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.

getDevices()

Versprechen
chrome.usb.getDevices(
  options: EnumerateDevicesOptions,
  callback?: function,
)

Listet verbundene USB-Geräte auf.

Parameters

  • Die Eigenschaften, nach denen auf den Zielgeräten gesucht werden soll.

  • callback

    Funktion optional

    Der Parameter callback sieht so aus:

    (devices: Device[])=>void

Rückgaben

  • Promise<Gerät[]>

    Chrome 116 oder höher

    Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.

getUserSelectedDevices()

Versprechen
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

  • Konfiguration des Dialogfelds für die Geräteauswahl.

  • callback

    Funktion optional

    Der Parameter callback sieht so aus:

    (devices: Device[])=>void

Rückgaben

  • Promise<Gerät[]>

    Chrome 116 oder höher

    Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.

interruptTransfer()

Versprechen
chrome.usb.interruptTransfer(
  handle: ConnectionHandle,
  transferInfo: GenericTransferInfo,
  callback?: function,
)

Führt eine Unterbrechung der Übertragung auf dem angegebenen Gerät durch.

Parameters

Rückgaben

  • Chrome 116 oder höher

    Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.

isochronousTransfer()

Versprechen
chrome.usb.isochronousTransfer(
  handle: ConnectionHandle,
  transferInfo: IsochronousTransferInfo,
  callback?: function,
)

Führt einen isochronischen Transfer auf dem jeweiligen Gerät durch.

Parameters

Rückgaben

  • Chrome 116 oder höher

    Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.

listInterfaces()

Versprechen
chrome.usb.listInterfaces(
  handle: ConnectionHandle,
  callback?: function,
)

Listet alle Schnittstellen auf einem USB-Gerät auf.

Parameters

Rückgaben

  • Chrome 116 oder höher

    Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.

openDevice()

Versprechen
chrome.usb.openDevice(
  device: Device,
  callback?: function,
)

Öffnet ein von getDevices zurückgegebenes USB-Gerät.

Parameters

Rückgaben

  • Chrome 116 oder höher

    Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.

releaseInterface()

Versprechen
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öher

    Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.

requestAccess()

Promise Eingestellt
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öher

    Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.

resetDevice()

Versprechen
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öher

    Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.

setConfiguration()

Versprechen
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öher

    Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.

setInterfaceAlternateSetting()

Versprechen
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öher

    Promise-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

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.

Parameters

  • callback

    Funktion

    Der Parameter callback sieht so aus:

    (device: Device)=>void