chrome.usb

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

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

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

    Der vom Gerät gelesene String „iManufacturer“, falls verfügbar.

  • productId

    Zahl

    Die Produkt-ID.

  • productName (Produktname)

    String

    Chrome 46 und höher

    Der vom Gerät gelesene iProduct-String, falls verfügbar.

  • serialNumber

    String

    Chrome 46 und höher

    Der vom Gerät gelesene String „iSerialNumber“, falls verfügbar.

  • vendorId

    Zahl

    Die Geräteanbieter-ID.

  • Version

    Zahl

    Chrome 51 und höher

    Die 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

    Übertragungssynchronisierungsmodus (nur isochron).

  • 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

    Eingestellt

    Entspricht der Einstellung DeviceFilter.productId.

  • vendorId

    number optional

    Eingestellt

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

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

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

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

Parameter

Gibt Folgendes zurück:

  • Chrome 116 und höher

    Versprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

claimInterface()

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

    Versprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

closeDevice()

Promise
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

Gibt Folgendes zurück:

  • Promise<void>

    Chrome 116 und höher

    Versprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

controlTransfer()

Promise
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

Gibt Folgendes zurück:

  • Chrome 116 und höher

    Versprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

findDevices()

Promise
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

Gibt Folgendes zurück:

  • Promise<ConnectionHandle[]>

    Chrome 116 und höher

    Versprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

getConfiguration()

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

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

Parameter

Gibt Folgendes zurück:

  • Chrome 116 und höher

    Versprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

getConfigurations()

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

Gibt die vollständigen Gerätekonfigurationsdeskriptoren zurück.

Parameter

Gibt Folgendes zurück:

  • Promise<ConfigDescriptor[]>

    Chrome 116 und höher

    Versprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

getDevices()

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

Listet die verbundenen USB-Geräte auf.

Parameter

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

  • callback

    function optional

    Der Parameter callback sieht so aus:

    (devices: Device[]) => void

Gibt Folgendes zurück:

  • Promise<Device[]>

    Chrome 116 und höher

    Versprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

getUserSelectedDevices()

Promise
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

  • Konfiguration des Dialogfelds für die Geräteauswahl

  • callback

    function optional

    Der Parameter callback sieht so aus:

    (devices: Device[]) => void

Gibt Folgendes zurück:

  • Promise<Device[]>

    Chrome 116 und höher

    Versprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

interruptTransfer()

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

Führt eine Unterbrechungsübertragung auf dem angegebenen Gerät aus.

Parameter

Gibt Folgendes zurück:

  • Chrome 116 und höher

    Versprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

isochronousTransfer()

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

Führt eine isochrone Übertragung auf dem jeweiligen Gerät aus.

Parameter

Gibt Folgendes zurück:

  • Chrome 116 und höher

    Versprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

listInterfaces()

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

Listet alle Schnittstellen eines USB-Geräts auf.

Parameter

Gibt Folgendes zurück:

  • Chrome 116 und höher

    Versprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

openDevice()

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

Öffnet ein USB-Gerät, das von getDevices zurückgegeben wurde.

Parameter

Gibt Folgendes zurück:

  • Chrome 116 und höher

    Versprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

releaseInterface()

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

    Versprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

requestAccess()

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

    Versprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

resetDevice()

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

    Versprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

setConfiguration()

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

    Versprechen werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

setInterfaceAlternateSetting()

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

    Versprechen 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

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.

Parameter

  • callback

    Funktion

    Der Parameter callback sieht so aus:

    (device: Device) => void