Deskripsi
Gunakan chrome.usb API untuk berinteraksi dengan perangkat USB yang terhubung. API ini menyediakan akses ke operasi USB dari dalam konteks aplikasi. Dengan menggunakan API ini, aplikasi dapat berfungsi sebagai driver untuk perangkat hardware. Error yang dihasilkan oleh API ini dilaporkan dengan menyetel runtime.lastError dan mengeksekusi callback reguler fungsi. Parameter reguler callback tidak akan ditentukan dalam kasus ini.
Izin
usbJenis
ConfigDescriptor
Properti
- 
    aktifboolean Chrome 47+Apakah ini konfigurasi aktif? 
- 
    configurationValueangka Nomor konfigurasi. 
- 
    deskripsistring opsional Deskripsi konfigurasi. 
- 
    extra_dataArrayBuffer Data deskriptor tambahan yang terkait dengan konfigurasi ini. 
- 
    antarmukaAntarmuka yang tersedia. 
- 
    maxPowerangka Daya maksimum yang dibutuhkan oleh perangkat ini dalam miliampere (mA). 
- 
    remoteWakeupboolean Perangkat mendukung aktifkan dari jarak jauh. 
- 
    selfPoweredboolean Perangkat memiliki daya sendiri. 
ConnectionHandle
Properti
- 
    handleangka Handle buram yang merepresentasikan koneksi ini ke perangkat USB dan semua antarmuka yang diklaim terkait serta transfer yang tertunda. Setiap kali perangkat dibuka, akan dibuat handle baru. Handle koneksi berbeda dengan Device.device.
- 
    productIdangka ID produk. 
- 
    vendorIdangka ID vendor perangkat. 
ControlTransferInfo
Properti
- 
    dataArrayBuffer opsional Data yang akan ditransmisikan (hanya diperlukan oleh transfer output). 
- 
    directionArah transfer ( "in"atau"out").
- 
    indeksangka Kolom wIndex, lihat Ibid.
- 
    panjangnomor opsional Jumlah maksimum byte yang akan diterima (hanya diperlukan oleh transfer input). 
- 
    penerimaTarget transfer. Target yang diberikan oleh indexharus diklaim jika"interface"atau"endpoint".
- 
    mintaangka Kolom bRequest, lihat Universal Serial Bus Specification Revision 1.1 § 9.3.
- 
    requestTypeJenis permintaan. 
- 
    timeoutnomor opsional Chrome 43+Waktu tunggu permintaan (dalam milidetik). Nilai default 0menunjukkan tidak ada waktu tunggu.
- 
    nilaiangka Kolom wValue, lihat Ibid.
Device
Properti
- 
    perangkatangka ID buram untuk perangkat USB. Setelan ini tetap tidak berubah hingga perangkat dicabut. 
- 
    manufacturerNamestring Chrome 46+String iManufacturer yang dibaca dari perangkat, jika tersedia. 
- 
    productIdangka ID produk. 
- 
    productNamestring Chrome 46+String iProduct yang dibaca dari perangkat, jika tersedia. 
- 
    serialNumberstring Chrome 46+String iSerialNumber yang dibaca dari perangkat, jika tersedia. 
- 
    vendorIdangka ID vendor perangkat. 
- 
    versiangka Chrome 51+Versi perangkat (kolom bcdDevice). 
DeviceFilter
Properti
- 
    interfaceClassnomor opsional Class antarmuka USB, cocok dengan antarmuka apa pun di perangkat. 
- 
    interfaceProtocolnomor opsional Protokol antarmuka USB, diperiksa hanya jika sub-kelas antarmuka cocok. 
- 
    interfaceSubclassnomor opsional Sub-class antarmuka USB, hanya diperiksa jika class antarmuka cocok. 
- 
    productIdnomor opsional ID produk perangkat, hanya diperiksa jika ID vendor cocok. 
- 
    vendorIdnomor opsional ID vendor perangkat. 
DevicePromptOptions
Properti
- 
    filterDeviceFilter[] opsional Memfilter daftar perangkat yang ditampilkan kepada pengguna. Jika beberapa filter disediakan, perangkat yang cocok dengan filter apa pun akan ditampilkan. 
- 
    lebih dari satuboolean opsional Izinkan pengguna memilih beberapa perangkat. 
Direction
Direction, Recipient, RequestType, dan TransferType semuanya dipetakan ke nama yang sama dalam spesifikasi USB.
Enum
"in" 
 
"out" 
 
EndpointDescriptor
Properti
- 
    alamatangka Alamat endpoint. 
- 
    directionArah transfer. 
- 
    extra_dataArrayBuffer Data deskriptor tambahan yang terkait dengan endpoint ini. 
- 
    maximumPacketSizeangka Ukuran paket maksimum. 
- 
    pollingIntervalnomor opsional Interval polling (hanya untuk interupsi dan isokron). 
- 
    sinkronisasiSynchronizationType opsional Mode sinkronisasi transfer (khusus isokron). 
- 
    jenisJenis transfer. 
- 
    penggunaanUsageType opsional Petunjuk penggunaan endpoint. 
EnumerateDevicesAndRequestAccessOptions
Properti
- 
    interfaceIdnomor opsional ID antarmuka untuk meminta akses. Hanya tersedia di ChromeOS. Hal ini tidak memengaruhi platform lain. 
- 
    productIdangka ID produk. 
- 
    vendorIdangka ID vendor perangkat. 
EnumerateDevicesOptions
Properti
- 
    filterDeviceFilter[] opsional Perangkat yang cocok dengan filter tertentu akan ditampilkan. Daftar filter kosong akan menampilkan semua perangkat yang memiliki izin aplikasi. 
- 
    productIdnomor opsional Tidak digunakan lagiSetara dengan menyetel DeviceFilter.productId.
- 
    vendorIdnomor opsional Tidak digunakan lagiSetara dengan menyetel DeviceFilter.vendorId.
GenericTransferInfo
Properti
- 
    dataArrayBuffer opsional Data yang akan ditransmisikan (hanya diperlukan oleh transfer output). 
- 
    directionArah transfer ( "in"atau"out").
- 
    endpointangka Alamat endpoint target. Antarmuka yang berisi endpoint ini harus diklaim. 
- 
    panjangnomor opsional Jumlah maksimum byte yang akan diterima (hanya diperlukan oleh transfer input). 
- 
    timeoutnomor opsional Chrome 43+Waktu tunggu permintaan (dalam milidetik). Nilai default 0menunjukkan tidak ada waktu tunggu.
InterfaceDescriptor
Properti
- 
    alternateSettingangka Nomor setelan alternatif antarmuka (defaultnya 0
- 
    deskripsistring opsional Deskripsi antarmuka. 
- 
    endpointEndpoint yang tersedia. 
- 
    extra_dataArrayBuffer Data deskriptor tambahan yang terkait dengan antarmuka ini. 
- 
    interfaceClassangka Class antarmuka USB. 
- 
    interfaceNumberangka Nomor antarmuka. 
- 
    interfaceProtocolangka Protokol antarmuka USB. 
- 
    interfaceSubclassangka Sub-class antarmuka USB. 
IsochronousTransferInfo
Properti
- 
    packetLengthangka Panjang setiap paket dalam transfer ini. 
- 
    paketangka Jumlah total paket dalam transfer ini. 
- 
    transferInfoParameter transfer. Panjang transfer atau buffer data yang ditentukan dalam blok parameter ini dibagi di sepanjang batas packetLengthuntuk membentuk setiap paket transfer.
Recipient
Enum
"device" 
 
"antarmuka" 
 
"endpoint" 
 
"lainnya" 
 
RequestType
Enum
"standard" 
 
"class" 
 
"vendor" 
 
"reserved" 
 
SynchronizationType
Untuk mode interupsi dan isokronus, SynchronizationType dan UsageType dipetakan ke nama yang sama dalam spesifikasi USB.
Enum
"asynchronous" 
 
"adaptive" 
 
"synchronous" 
 
TransferResultInfo
Properti
- 
    dataArrayBuffer opsional Data yang ditampilkan oleh transfer input. undefineduntuk transfer output.
- 
    resultCodenomor opsional Nilai 0menunjukkan bahwa transfer berhasil. Nilai lainnya menunjukkan kegagalan.
TransferType
Enum
"kontrol" 
 
"interrupt" 
 
"isokronus" 
 
"bulk" 
 
UsageType
Enum
"data" 
 
"feedback" 
 
"explicitFeedback" 
 
"berkala" 
 
"notification" 
 
Metode
bulkTransfer()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Melakukan transfer massal di perangkat yang ditentukan.
Parameter
- 
    handleKoneksi terbuka ke perangkat. 
- 
    transferInfoParameter transfer. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(info: TransferResultInfo) => void - 
    info
 
- 
    
Hasil
- 
            Promise<TransferResultInfo> Chrome 116+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
claimInterface()
chrome.usb.claimInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
): Promise<void>
Mengklaim antarmuka pada perangkat USB. Sebelum data dapat ditransfer ke antarmuka atau endpoint terkait, antarmuka harus diklaim. Hanya satu handle koneksi yang dapat mengklaim antarmuka pada waktu tertentu. Jika antarmuka sudah diklaim, panggilan ini akan gagal.
releaseInterface harus dipanggil saat antarmuka tidak lagi diperlukan.
Parameter
- 
    handleKoneksi terbuka ke perangkat. 
- 
    interfaceNumberangka Antarmuka yang akan diklaim. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:() => void 
Hasil
- 
            Promise<void> Chrome 116+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
closeDevice()
chrome.usb.closeDevice(
handle: ConnectionHandle,
callback?: function,
): Promise<void>
Menutup handle koneksi. Memanggil operasi pada handle setelah ditutup adalah operasi yang aman, tetapi tidak menyebabkan tindakan apa pun dilakukan.
Parameter
- 
    handleConnectionHandleuntuk menutup.
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:() => void 
Hasil
- 
            Promise<void> Chrome 116+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
controlTransfer()
chrome.usb.controlTransfer(
handle: ConnectionHandle,
transferInfo: ControlTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Melakukan transfer kontrol pada perangkat yang ditentukan.
Transfer kontrol mengacu pada perangkat, antarmuka, atau endpoint. Transfer ke antarmuka atau endpoint memerlukan klaim antarmuka.
Parameter
- 
    handleKoneksi terbuka ke perangkat. 
- 
    transferInfo
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(info: TransferResultInfo) => void - 
    info
 
- 
    
Hasil
- 
            Promise<TransferResultInfo> Chrome 116+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
findDevices()
chrome.usb.findDevices(
options: EnumerateDevicesAndRequestAccessOptions,
callback?: function,
): Promise<ConnectionHandle[]>
Menemukan perangkat USB yang ditentukan oleh ID vendor, produk, dan (opsional) antarmuka, lalu membukanya untuk digunakan jika izin mengizinkan.
Jika permintaan akses ditolak atau perangkat gagal dibuka, handle koneksi tidak akan dibuat atau ditampilkan.
Memanggil metode ini sama dengan memanggil getDevices yang diikuti dengan openDevice untuk setiap perangkat.
Parameter
- 
    Properti yang akan ditelusuri di perangkat target. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(handles: ConnectionHandle[]) => void - 
    nama sebutan channel
 
- 
    
Hasil
- 
            Promise<ConnectionHandle[]> Chrome 116+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
getConfiguration()
chrome.usb.getConfiguration(
handle: ConnectionHandle,
callback?: function,
): Promise<ConfigDescriptor>
Mendapatkan deskriptor konfigurasi untuk konfigurasi yang saat ini dipilih.
Parameter
- 
    handleKoneksi terbuka ke perangkat. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(config: ConfigDescriptor) => void - 
    config
 
- 
    
Hasil
- 
            Promise<ConfigDescriptor> Chrome 116+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
getConfigurations()
chrome.usb.getConfigurations(
device: Device,
callback?: function,
): Promise<ConfigDescriptor[]>
Menampilkan set lengkap deskriptor konfigurasi perangkat.
Parameter
- 
    perangkatDeviceuntuk mengambil deskriptor.
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(configs: ConfigDescriptor[]) => void - 
    configs
 
- 
    
Hasil
- 
            Promise<ConfigDescriptor[]> Chrome 116+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
getDevices()
chrome.usb.getDevices(
options: EnumerateDevicesOptions,
callback?: function,
): Promise<Device[]>
Mencantumkan perangkat USB yang terhubung.
Parameter
- 
    Properti yang akan ditelusuri di perangkat target. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(devices: Device[]) => void - 
    perangkat
 
- 
    
Hasil
- 
            Promise<Device[]> Chrome 116+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
getUserSelectedDevices()
chrome.usb.getUserSelectedDevices(
options: DevicePromptOptions,
callback?: function,
): Promise<Device[]>
Menampilkan pemilih perangkat kepada pengguna dan menampilkan Device yang dipilih. Jika pengguna membatalkan pemilih, perangkat akan kosong. Gestur pengguna diperlukan agar dialog ditampilkan. Tanpa gestur pengguna, callback akan berjalan seolah-olah pengguna membatalkan.
Parameter
- 
    opsiKonfigurasi kotak dialog pemilih perangkat. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(devices: Device[]) => void - 
    perangkat
 
- 
    
Hasil
- 
            Promise<Device[]> Chrome 116+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
interruptTransfer()
chrome.usb.interruptTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Melakukan transfer interupsi pada perangkat yang ditentukan.
Parameter
- 
    handleKoneksi terbuka ke perangkat. 
- 
    transferInfoParameter transfer. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(info: TransferResultInfo) => void - 
    info
 
- 
    
Hasil
- 
            Promise<TransferResultInfo> Chrome 116+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
isochronousTransfer()
chrome.usb.isochronousTransfer(
handle: ConnectionHandle,
transferInfo: IsochronousTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Melakukan transfer isokronus pada perangkat tertentu.
Parameter
- 
    handleKoneksi terbuka ke perangkat. 
- 
    transferInfo
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(info: TransferResultInfo) => void - 
    info
 
- 
    
Hasil
- 
            Promise<TransferResultInfo> Chrome 116+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
listInterfaces()
chrome.usb.listInterfaces(
handle: ConnectionHandle,
callback?: function,
): Promise<InterfaceDescriptor[]>
Mencantumkan semua antarmuka di perangkat USB.
Parameter
- 
    handleKoneksi terbuka ke perangkat. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(descriptors: InterfaceDescriptor[]) => void - 
    deskripsi
 
- 
    
Hasil
- 
            Promise<InterfaceDescriptor[]> Chrome 116+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
openDevice()
chrome.usb.openDevice(
device: Device,
callback?: function,
): Promise<ConnectionHandle>
Membuka perangkat USB yang ditampilkan oleh getDevices.
Parameter
- 
    perangkatDeviceuntuk membuka.
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(handle: ConnectionHandle) => void - 
    handle
 
- 
    
Hasil
- 
            Promise<ConnectionHandle> Chrome 116+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
releaseInterface()
chrome.usb.releaseInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
): Promise<void>
Melepaskan antarmuka yang diklaim.
Parameter
- 
    handleKoneksi terbuka ke perangkat. 
- 
    interfaceNumberangka Antarmuka yang akan dilepaskan. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:() => void 
Hasil
- 
            Promise<void> Chrome 116+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
requestAccess()
chrome.usb.requestAccess(
device: Device,
interfaceId: number,
callback?: function,
): Promise<boolean>
Fungsi ini khusus untuk ChromeOS dan memanggilnya di platform lain akan gagal. Operasi ini sekarang dilakukan secara implisit sebagai bagian dari openDevice dan fungsi ini akan menampilkan true di semua platform.
Meminta akses dari broker izin ke perangkat yang diklaim oleh Chrome OS jika antarmuka tertentu di perangkat tidak diklaim.
Parameter
- 
    perangkatDeviceyang akan diminta aksesnya.
- 
    interfaceIdangka Antarmuka tertentu yang diminta. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(success: boolean) => void - 
    berhasilboolean 
 
- 
    
Hasil
- 
            Promise<boolean> Chrome 116+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
resetDevice()
chrome.usb.resetDevice(
handle: ConnectionHandle,
callback?: function,
): Promise<boolean>
Mencoba mereset perangkat USB. Jika reset gagal, handle koneksi yang diberikan akan ditutup dan perangkat USB akan tampak terputus lalu terhubung kembali. Dalam hal ini, getDevices atau findDevices harus dipanggil lagi untuk mendapatkan perangkat.
Parameter
- 
    handleTuas koneksi yang akan direset. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(success: boolean) => void - 
    berhasilboolean 
 
- 
    
Hasil
- 
            Promise<boolean> Chrome 116+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
setConfiguration()
chrome.usb.setConfiguration(
handle: ConnectionHandle,
configurationValue: number,
callback?: function,
): Promise<void>
Pilih konfigurasi perangkat.
Fungsi ini secara efektif mereset perangkat dengan memilih salah satu konfigurasi yang tersedia di perangkat. Hanya nilai konfigurasi yang lebih besar dari 0 yang valid, tetapi beberapa perangkat yang bermasalah memiliki konfigurasi 0 yang berfungsi, sehingga nilai ini diizinkan.
Parameter
- 
    handleKoneksi terbuka ke perangkat. 
- 
    configurationValueangka 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:() => void 
Hasil
- 
            Promise<void> Chrome 116+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
setInterfaceAlternateSetting()
chrome.usb.setInterfaceAlternateSetting(
handle: ConnectionHandle,
interfaceNumber: number,
alternateSetting: number,
callback?: function,
): Promise<void>
Memilih setelan alternatif pada antarmuka yang sebelumnya diklaim.
Parameter
- 
    handleKoneksi terbuka ke perangkat tempat antarmuka ini telah diklaim. 
- 
    interfaceNumberangka Antarmuka yang akan dikonfigurasi. 
- 
    alternateSettingangka Setelan alternatif yang akan dikonfigurasi. 
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:() => void 
Hasil
- 
            Promise<void> Chrome 116+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
Acara
onDeviceAdded
chrome.usb.onDeviceAdded.addListener(
callback: function,
)
Peristiwa yang dihasilkan saat perangkat ditambahkan ke sistem. Peristiwa hanya disiarkan ke aplikasi dan ekstensi yang memiliki izin untuk mengakses perangkat. Izin mungkin telah diberikan pada saat penginstalan, saat pengguna menyetujui izin opsional (lihat permissions.request), atau melalui getUserSelectedDevices.
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:(device: Device) => void - 
    perangkat
 
- 
    
onDeviceRemoved
chrome.usb.onDeviceRemoved.addListener(
callback: function,
)
Peristiwa yang dihasilkan saat perangkat dihapus dari sistem. Lihat onDeviceAdded untuk mengetahui peristiwa mana yang dikirimkan.