Beschrijving
Gebruik de chrome.usb
API om te communiceren met aangesloten USB-apparaten. Deze API biedt toegang tot USB-bewerkingen binnen de context van een app. Met deze API kunnen apps functioneren als drivers voor hardwareapparaten. Fouten die door deze API worden gegenereerd, worden gerapporteerd door runtime.lastError
in te stellen en de reguliere callback van de functie uit te voeren. De reguliere parameters van de callback zijn in dit geval ongedefinieerd.
Machtigingen
usb
Typen
ConfigDescriptor
Eigenschappen
- actief
Booleaanse
Chroom 47+Is dit de actieve configuratie?
- configuratiewaarde
nummer
Het configuratienummer.
- beschrijving
string optioneel
Beschrijving van de configuratie.
- extra_gegevens
ArrayBuffer
Extra descriptorgegevens die aan deze configuratie zijn gekoppeld.
- interfaces
Beschikbare interfaces.
- maxPower
nummer
Het maximale vermogen dat dit apparaat nodig heeft, is uitgedrukt in milliampère (mA).
- remoteWakeup
Booleaanse
Het apparaat ondersteunt remote wakeup.
- zelfaangedreven
Booleaanse
Het apparaat is zelfvoorzienend.
ConnectionHandle
Eigenschappen
- hendel
nummer
Een ondoorzichtige handle die deze verbinding met het USB-apparaat en alle bijbehorende geclaimde interfaces en in behandeling zijnde overdrachten vertegenwoordigt. Elke keer dat het apparaat wordt geopend, wordt er een nieuwe handle aangemaakt. De verbindingshandle verschilt van
Device.device
. - product-ID
nummer
De product-ID.
- leveranciers-ID
nummer
De leverancier-ID van het apparaat.
ControlTransferInfo
Eigenschappen
- gegevens
ArrayBuffer optioneel
De te verzenden gegevens (alleen vereist voor uitvoeroverdrachten).
- richting
De overdrachtsrichting (
"in"
of"out"
). - index
nummer
Het
wIndex
veld, zie Ibid . - lengte
nummer optioneel
Het maximale aantal bytes dat moet worden ontvangen (alleen vereist bij invoeroverdrachten).
- ontvanger
Het overdrachtsdoel. Het doel dat door
index
wordt opgegeven, moet worden geclaimd als het"interface"
of"endpoint"
betreft. - verzoek
nummer
Het
bRequest
veld, zie Universal Serial Bus Specification Revision 1.1 § 9.3. - aanvraagtype
Het aanvraagtype.
- time-out
nummer optioneel
Chroom 43+Time-out van verzoek (in milliseconden). De standaardwaarde
0
geeft aan dat er geen time-out is. - waarde
nummer
Het
wValue
veld, zie Ibid .
Device
Eigenschappen
- apparaat
nummer
Een ondoorzichtige ID voor het USB-apparaat. Deze blijft ongewijzigd totdat het apparaat wordt losgekoppeld.
- fabrikantnaam
snaar
Chroom 46+De iManufacturer-tekenreeks die van het apparaat wordt gelezen, indien beschikbaar.
- product-ID
nummer
De product-ID.
- productnaam
snaar
Chroom 46+De iProduct-tekenreeks die van het apparaat wordt gelezen, indien beschikbaar.
- serienummer
snaar
Chroom 46+De iSerialNumber-tekenreeks die van het apparaat wordt gelezen, indien beschikbaar.
- leveranciers-ID
nummer
De leverancier-ID van het apparaat.
- versie
nummer
Chroom 51+De versie van het apparaat (veld bcdDevice).
DeviceFilter
Eigenschappen
- interfaceKlasse
nummer optioneel
USB-interfaceklasse, komt overeen met elke interface op het apparaat.
- interfaceProtocol
nummer optioneel
USB-interfaceprotocol: wordt alleen gecontroleerd als de interface-subklasse overeenkomt.
- interfaceSubklasse
nummer optioneel
USB-interface-subklasse, wordt alleen gecontroleerd als de interface-klasse overeenkomt.
- product-ID
nummer optioneel
Product-ID van het apparaat: wordt alleen gecontroleerd als de leveranciers-ID overeenkomt.
- leveranciers-ID
nummer optioneel
Leveranciers-ID van het apparaat.
DevicePromptOptions
Eigenschappen
- filters
DeviceFilter [] optioneel
Filter de lijst met apparaten die aan de gebruiker wordt gepresenteerd. Als er meerdere filters zijn opgegeven, worden apparaten die aan een filter voldoen, weergegeven.
- meerdere
boolean optioneel
Geef de gebruiker de mogelijkheid om meerdere apparaten te selecteren.
Direction
Direction, Recipient, RequestType en TransferType komen allemaal overeen met hun naamgenoten in de USB-specificatie.
Enum
"in" "uit"
EndpointDescriptor
Eigenschappen
- adres
nummer
Eindpuntadres.
- richting
Overdrachtsrichting.
- extra_gegevens
ArrayBuffer
Extra descriptorgegevens die aan dit eindpunt zijn gekoppeld.
- maximale pakketgrootte
nummer
Maximale pakketgrootte.
- pollingInterval
nummer optioneel
Polling-interval (alleen interrupt en isochroon).
- synchronisatie
SynchronisatieType optioneel
Overdrachtssynchronisatiemodus (alleen isochroon).
- type
Overdrachtstype.
- gebruik
Gebruikstype optioneel
Hint voor eindpuntgebruik.
EnumerateDevicesAndRequestAccessOptions
Eigenschappen
- interface-ID
nummer optioneel
De interface-ID waartoe toegang moet worden aangevraagd. Alleen beschikbaar op Chrome OS. Heeft geen effect op andere platforms.
- product-ID
nummer
De product-ID.
- leveranciers-ID
nummer
De leverancier-ID van het apparaat.
EnumerateDevicesOptions
Eigenschappen
- filters
DeviceFilter [] optioneel
Er wordt een apparaat geretourneerd dat aan een bepaald filter voldoet. Een lege filterlijst retourneert alle apparaten waarvoor de app toestemming heeft.
- product-ID
nummer optioneel
VerouderdEquivalent aan het instellen van
DeviceFilter.productId
. - leveranciers-ID
nummer optioneel
VerouderdEquivalent aan het instellen
DeviceFilter.vendorId
.
GenericTransferInfo
Eigenschappen
- gegevens
ArrayBuffer optioneel
De te verzenden gegevens (alleen vereist voor uitvoeroverdrachten).
- richting
De overdrachtsrichting (
"in"
of"out"
). - eindpunt
nummer
Het doeleindpuntadres. De interface die dit eindpunt bevat, moet worden geclaimd.
- lengte
nummer optioneel
Het maximale aantal bytes dat moet worden ontvangen (alleen vereist bij invoeroverdrachten).
- time-out
nummer optioneel
Chroom 43+Time-out van verzoek (in milliseconden). De standaardwaarde
0
geeft aan dat er geen time-out is.
InterfaceDescriptor
Eigenschappen
- alternatieve instelling
nummer
Het alternatieve instellingsnummer van de interface (standaard
0
- beschrijving
string optioneel
Beschrijving van de interface.
- eindpunten
Beschikbare eindpunten.
- extra_gegevens
ArrayBuffer
Extra descriptorgegevens die aan deze interface zijn gekoppeld.
- interfaceKlasse
nummer
De USB-interfaceklasse.
- interfacenummer
nummer
Het interfacenummer.
- interfaceProtocol
nummer
Het USB-interfaceprotocol.
- interfaceSubklasse
nummer
De subklasse van de USB-interface.
IsochronousTransferInfo
Eigenschappen
- pakketlengte
nummer
De lengte van elk van de pakketten in deze overdracht.
- pakketten
nummer
Het totale aantal pakketten in deze overdracht.
- overdrachtsinfo
Overdrachtsparameters. De in dit parameterblok gespecificeerde overdrachtslengte of gegevensbuffer wordt gesplitst langs
packetLength
om de individuele pakketten van de overdracht te vormen.
Recipient
Enum
"apparaat" "interface" "eindpunt" "ander"
RequestType
Enum
"standaard" "klas" "leverancier" "gereserveerd"
SynchronizationType
Voor interrupt- en isochrone modi worden SynchronizationType en UsageType toegewezen aan hun naamgenoten in de USB-specificatie.
Enum
"asynchroon" "adaptief" "synchroon"
TransferResultInfo
Eigenschappen
- gegevens
ArrayBuffer optioneel
De gegevens die door een invoeroverdracht worden geretourneerd.
undefined
voor uitvoeroverdrachten. - resultaatcode
nummer optioneel
Een waarde van
0
geeft aan dat de overdracht succesvol was. Andere waarden geven aan dat de overdracht mislukt is.
TransferType
Enum
"controle" "onderbreken" "isochroon" "massa"
UsageType
Enum
"gegevens" "feedback" "expliciete feedback" "periodiek" "kennisgeving"
Methoden
bulkTransfer()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Voert een bulkoverdracht uit op het opgegeven apparaat.
Parameters
- hendel
Een open verbinding met het apparaat.
- overdrachtsinfo
De overdrachtsparameters.
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(info: TransferResultInfo) => void
- informatie
Retourneren
Belofte< TransferResultInfo >
Chroom 116+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
claimInterface()
chrome.usb.claimInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
): Promise<void>
Claimt een interface op een USB-apparaat. Voordat gegevens kunnen worden overgedragen naar een interface of bijbehorende eindpunten, moet de interface worden geclaimd. Slechts één verbindingshandle kan tegelijkertijd een interface claimen. Als de interface al is geclaimd, mislukt deze aanroep.
releaseInterface
moet worden aangeroepen wanneer de interface niet langer nodig is.
Parameters
- hendel
Een open verbinding met het apparaat.
- interfacenummer
nummer
De interface die geclaimd moet worden.
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:() => void
Retourneren
Belofte<leegte>
Chroom 116+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
closeDevice()
chrome.usb.closeDevice(
handle: ConnectionHandle,
callback?: function,
): Promise<void>
Sluit een verbindingshandle. Het uitvoeren van bewerkingen op een handle nadat deze is gesloten, is een veilige bewerking, maar zorgt er niet voor dat er actie wordt ondernomen.
Parameters
- hendel
De
ConnectionHandle
om te sluiten. - terugbellen
functie optioneel
De
callback
ziet er als volgt uit:() => void
Retourneren
Belofte<leegte>
Chroom 116+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
controlTransfer()
chrome.usb.controlTransfer(
handle: ConnectionHandle,
transferInfo: ControlTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Voert een controleoverdracht uit op het opgegeven apparaat.
Controleoverdrachten hebben betrekking op het apparaat, een interface of een eindpunt. Voor overdrachten naar een interface of eindpunt moet de interface worden geclaimd.
Parameters
- hendel
Een open verbinding met het apparaat.
- overdrachtsinfo
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(info: TransferResultInfo) => void
- informatie
Retourneren
Belofte< TransferResultInfo >
Chroom 116+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
findDevices()
chrome.usb.findDevices(
options: EnumerateDevicesAndRequestAccessOptions,
callback?: function,
): Promise<ConnectionHandle[]>
Vindt USB-apparaten die zijn gespecificeerd door de leverancier, het product en (optioneel) de interface-ID's. Als de machtigingen dit toestaan, worden deze geopend voor gebruik.
Als het toegangsverzoek wordt afgewezen of het apparaat niet kan worden geopend, wordt er geen verbindingshandle gemaakt of geretourneerd.
Het aanroepen van deze methode is gelijkwaardig aan het aanroepen van getDevices
gevolgd door openDevice
voor elk apparaat.
Parameters
De eigenschappen waarnaar moet worden gezocht op doelapparaten.
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(handles: ConnectionHandle[]) => void
- handgrepen
Retourneren
Belofte< ConnectionHandle []>
Chroom 116+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
getConfiguration()
chrome.usb.getConfiguration(
handle: ConnectionHandle,
callback?: function,
): Promise<ConfigDescriptor>
Haalt de configuratiedescriptor op voor de momenteel geselecteerde configuratie.
Parameters
- hendel
Een open verbinding met het apparaat.
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(config: ConfigDescriptor) => void
- configuratie
Retourneren
Belofte <ConfigDescriptor>
Chroom 116+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
getConfigurations()
chrome.usb.getConfigurations(
device: Device,
callback?: function,
): Promise<ConfigDescriptor[]>
Retourneert de volledige set configuratiebeschrijvingen van het apparaat.
Parameters
- apparaat
Het
Device
waarvan de beschrijvingen moeten worden opgehaald. - terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(configs: ConfigDescriptor[]) => void
- configuraties
Retourneren
Belofte< ConfigDescriptor []>
Chroom 116+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
getDevices()
chrome.usb.getDevices(
options: EnumerateDevicesOptions,
callback?: function,
): Promise<Device[]>
Geeft een overzicht van de aangesloten USB-apparaten.
Parameters
Retourneren
Belofte< Apparaat []>
Chroom 116+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
getUserSelectedDevices()
chrome.usb.getUserSelectedDevices(
options: DevicePromptOptions,
callback?: function,
): Promise<Device[]>
Presenteert een apparaatkiezer aan de gebruiker en retourneert de geselecteerde Device
. Als de gebruiker annuleert, zijn de apparaten in de kiezer leeg. Een gebruikersgebaar is vereist om het dialoogvenster weer te geven. Zonder gebruikersgebaar wordt de callback uitgevoerd alsof de gebruiker heeft geannuleerd.
Parameters
Retourneren
Belofte< Apparaat []>
Chroom 116+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
interruptTransfer()
chrome.usb.interruptTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Voert een interrupt-overdracht uit op het opgegeven apparaat.
Parameters
- hendel
Een open verbinding met het apparaat.
- overdrachtsinfo
De overdrachtsparameters.
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(info: TransferResultInfo) => void
- informatie
Retourneren
Belofte< TransferResultInfo >
Chroom 116+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
isochronousTransfer()
chrome.usb.isochronousTransfer(
handle: ConnectionHandle,
transferInfo: IsochronousTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Voert een isochrone overdracht uit op het specifieke apparaat.
Parameters
- hendel
Een open verbinding met het apparaat.
- overdrachtsinfo
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(info: TransferResultInfo) => void
- informatie
Retourneren
Belofte< TransferResultInfo >
Chroom 116+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
listInterfaces()
chrome.usb.listInterfaces(
handle: ConnectionHandle,
callback?: function,
): Promise<InterfaceDescriptor[]>
Geeft een overzicht van alle interfaces op een USB-apparaat.
Parameters
- hendel
Een open verbinding met het apparaat.
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(descriptors: InterfaceDescriptor[]) => void
- beschrijvingen
Retourneren
Belofte< InterfaceDescriptor []>
Chroom 116+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
openDevice()
chrome.usb.openDevice(
device: Device,
callback?: function,
): Promise<ConnectionHandle>
Opent een USB-apparaat dat is geretourneerd door getDevices
.
Parameters
- apparaat
Het te openen
Device
. - terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(handle: ConnectionHandle) => void
- hendel
Retourneren
Belofte< ConnectionHandle >
Chroom 116+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
releaseInterface()
chrome.usb.releaseInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
): Promise<void>
Geeft een geclaimde interface vrij.
Parameters
- hendel
Een open verbinding met het apparaat.
- interfacenummer
nummer
De interface moet vrijgegeven worden.
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:() => void
Retourneren
Belofte<leegte>
Chroom 116+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
requestAccess()
chrome.usb.requestAccess(
device: Device,
interfaceId: number,
callback?: function,
): Promise<boolean>
Deze functie was specifiek voor Chrome OS en het aanroepen ervan op andere platforms mislukte. Deze bewerking wordt nu impliciet uitgevoerd als onderdeel van openDevice
en deze functie retourneert true
op alle platforms.
Vraagt toegang aan bij de toestemmingsmakelaar tot een apparaat dat door Chrome OS is geclaimd als de opgegeven interface op het apparaat niet is geclaimd.
Parameters
- apparaat
Het
Device
waartoe u toegang wilt aanvragen. - interface-ID
nummer
De specifieke interface die is aangevraagd.
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(success: boolean) => void
- succes
Booleaanse
Retourneren
Belofte<boolean>
Chroom 116+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
resetDevice()
chrome.usb.resetDevice(
handle: ConnectionHandle,
callback?: function,
): Promise<boolean>
Probeert het USB-apparaat te resetten. Als de reset mislukt, wordt de opgegeven verbindingshandle gesloten en lijkt het alsof het USB-apparaat is losgekoppeld en vervolgens opnieuw is aangesloten. In dit geval moet getDevices
of findDevices
opnieuw worden aangeroepen om het apparaat te verkrijgen.
Parameters
- hendel
Een verbindingshendel om te resetten.
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:(success: boolean) => void
- succes
Booleaanse
Retourneren
Belofte<boolean>
Chroom 116+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
setConfiguration()
chrome.usb.setConfiguration(
handle: ConnectionHandle,
configurationValue: number,
callback?: function,
): Promise<void>
Selecteer een apparaatconfiguratie.
Deze functie reset het apparaat effectief door een van de beschikbare configuraties van het apparaat te selecteren. Alleen configuratiewaarden groter dan 0
zijn geldig, maar sommige buggy apparaten hebben een werkende configuratie 0
, waardoor deze waarde is toegestaan.
Parameters
- hendel
Een open verbinding met het apparaat.
- configuratiewaarde
nummer
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:() => void
Retourneren
Belofte<leegte>
Chroom 116+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
setInterfaceAlternateSetting()
chrome.usb.setInterfaceAlternateSetting(
handle: ConnectionHandle,
interfaceNumber: number,
alternateSetting: number,
callback?: function,
): Promise<void>
Selecteert een alternatieve instelling op een eerder geclaimde interface.
Parameters
- hendel
Een open verbinding met het apparaat waarop deze interface is geclaimd.
- interfacenummer
nummer
De interface om te configureren.
- alternatieve instelling
nummer
De alternatieve instelling om te configureren.
- terugbellen
functie optioneel
De
callback
ziet er als volgt uit:() => void
Retourneren
Belofte<leegte>
Chroom 116+Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
Evenementen
onDeviceAdded
chrome.usb.onDeviceAdded.addListener(
callback: function,
)
Gebeurtenis die wordt gegenereerd wanneer een apparaat aan het systeem wordt toegevoegd. Gebeurtenissen worden alleen verzonden naar apps en extensies die toestemming hebben om toegang te krijgen tot het apparaat. Deze toestemming kan zijn verleend tijdens de installatie, toen de gebruiker een optionele toestemming accepteerde (zie permissions.request
) of via getUserSelectedDevices
.
Parameters
- terugbellen
functie
De
callback
ziet er als volgt uit:(device: Device) => void
- apparaat
onDeviceRemoved
chrome.usb.onDeviceRemoved.addListener(
callback: function,
)
Gebeurtenis die wordt gegenereerd wanneer een apparaat uit het systeem wordt verwijderd. Zie onDeviceAdded
om te zien welke gebeurtenissen worden geleverd.