説明
chrome.usb API を使用して、接続された USB デバイスとやり取りします。この API は、アプリのコンテキスト内から USB オペレーションへのアクセスを提供します。この API を使用すると、アプリはハードウェア デバイスのドライバとして機能できます。この API によって生成されたエラーは、runtime.lastError を設定し、関数の通常のコールバックを実行することで報告されます。この場合、コールバックの通常のパラメータは未定義になります。
権限
usb型
ConfigDescriptor
プロパティ
- 
    アクティブ
ブール値
Chrome 47 以降これはアクティブな構成ですか?
 - 
    configurationValue
数値
構成番号。
 - 
    説明
文字列 省略可
構成の説明。
 - 
    extra_data
ArrayBuffer
この構成に関連付けられた追加の記述子データ。
 - 
    インターフェース
使用可能なインターフェース。
 - 
    maxPower
数値
このデバイスに必要な最大電力(ミリアンペア(mA)単位)。
 - 
    remoteWakeup
ブール値
デバイスがリモート ウェイクアップをサポートしている。
 - 
    selfPowered
ブール値
デバイスは自己電源です。
 
ConnectionHandle
プロパティ
- 
    ハンドル
数値
この USB デバイスへの接続と、関連するすべての要求済みインターフェースと保留中の転送を表す不透明なハンドル。デバイスを開くたびに新しいハンドルが作成されます。接続ハンドルが
Device.deviceと異なる。 - 
    productId
数値
商品 ID。
 - 
    vendorId
数値
デバイス ベンダー ID。
 
ControlTransferInfo
プロパティ
- 
    データ
ArrayBuffer 省略可
送信するデータ(出力転送でのみ必須)。
 - 
    direction
転送方向(
"in"または"out")。 - 
    index
数値
wIndexフィールド。Ibid。 - 
    長さ
number 省略可
受信する最大バイト数(入力転送でのみ必須)。
 - 
    受信者
転送先。
"interface"または"endpoint"の場合、indexで指定されたターゲットを要求する必要があります。 - 
    リクエスト
数値
bRequestフィールド。ユニバーサル シリアル バス仕様リビジョン 1.1 § 9.3 を参照してください。 - 
    requestType
リクエストのタイプ。
 - 
    timeout
number 省略可
Chrome 43 以降リクエスト タイムアウト(ミリ秒単位)。デフォルト値の
0は、タイムアウトがないことを示します。 - 
    値
数値
wValueフィールド。Ibid。 
Device
プロパティ
- 
    デバイス
数値
USB デバイスの不透明な ID。デバイスのプラグを抜くまで変更されません。
 - 
    manufacturerName
文字列
Chrome 46 以降デバイスから読み取られた iManufacturer 文字列(利用可能な場合)。
 - 
    productId
数値
商品 ID。
 - 
    productName
文字列
Chrome 46 以降デバイスから読み取られた iProduct 文字列(利用可能な場合)。
 - 
    serialNumber
文字列
Chrome 46 以降デバイスから読み取られた iSerialNumber 文字列(利用可能な場合)。
 - 
    vendorId
数値
デバイス ベンダー ID。
 - 
    version
数値
Chrome 51 以降デバイスのバージョン(bcdDevice フィールド)。
 
DeviceFilter
プロパティ
- 
    interfaceClass
number 省略可
USB インターフェース クラス。デバイス上の任意のインターフェースに一致します。
 - 
    interfaceProtocol
number 省略可
USB インターフェース プロトコル。インターフェース サブクラスが一致する場合にのみチェックされます。
 - 
    interfaceSubclass
number 省略可
USB インターフェース サブクラス。インターフェース クラスが一致する場合にのみチェックされます。
 - 
    productId
number 省略可
デバイスのプロダクト ID。ベンダー ID が一致する場合にのみチェックされます。
 - 
    vendorId
number 省略可
デバイス ベンダー ID。
 
DevicePromptOptions
プロパティ
- 
    フィルタ
DeviceFilter[] 省略可
ユーザーに表示されるデバイスのリストをフィルタします。複数のフィルタが指定されている場合、いずれかのフィルタに一致するデバイスが表示されます。
 - 
    複数
ブール値(省略可)
ユーザーが複数のデバイスを選択できるようにします。
 
Direction
Direction、Recipient、RequestType、TransferType はすべて、USB 仕様内の同名にマッピングされます。
列挙型
"in" 
 
"out" 
 
EndpointDescriptor
プロパティ
- 
    住所
数値
エンドポイント アドレス。
 - 
    direction
転送方向。
 - 
    extra_data
ArrayBuffer
このエンドポイントに関連付けられた追加の記述子データ。
 - 
    maximumPacketSize
数値
最大パケットサイズ。
 - 
    pollingInterval
number 省略可
ポーリング間隔(割り込みとアイソクロナスのみ)。
 - 
    同期
転送同期モード(アイソクロナスのみ)。
 - 
    type
転送タイプ。
 - 
    用途
UsageType 省略可
エンドポイントの使用状況のヒント。
 
EnumerateDevicesAndRequestAccessOptions
プロパティ
- 
    interfaceId
number 省略可
アクセスをリクエストするインターフェース ID。Chrome OS でのみご利用いただけます。他のプラットフォームには影響しません。
 - 
    productId
数値
商品 ID。
 - 
    vendorId
数値
デバイス ベンダー ID。
 
EnumerateDevicesOptions
プロパティ
- 
    フィルタ
DeviceFilter[] 省略可
指定されたフィルタに一致するデバイスが返されます。フィルタリストが空の場合、アプリが権限を持っているすべてのデバイスが返されます。
 - 
    productId
number 省略可
非推奨DeviceFilter.productIdを設定するのと同じです。 - 
    vendorId
number 省略可
非推奨DeviceFilter.vendorIdを設定するのと同じです。 
GenericTransferInfo
プロパティ
- 
    データ
ArrayBuffer 省略可
送信するデータ(出力転送でのみ必須)。
 - 
    direction
転送方向(
"in"または"out")。 - 
    endpoint
数値
ターゲット エンドポイント アドレス。このエンドポイントを含むインターフェースは、要求されている必要があります。
 - 
    長さ
number 省略可
受信する最大バイト数(入力転送でのみ必須)。
 - 
    timeout
number 省略可
Chrome 43 以降リクエスト タイムアウト(ミリ秒単位)。デフォルト値の
0は、タイムアウトがないことを示します。 
InterfaceDescriptor
プロパティ
- 
    alternateSetting
数値
インターフェースの代替設定番号(デフォルトは
0) - 
    説明
文字列 省略可
インターフェースの説明。
 - 
    エンドポイント
使用可能なエンドポイント。
 - 
    extra_data
ArrayBuffer
このインターフェースに関連付けられた追加のディスクリプタ データ。
 - 
    interfaceClass
数値
USB インターフェース クラス。
 - 
    interfaceNumber
数値
インターフェース番号。
 - 
    interfaceProtocol
数値
USB インターフェース プロトコル。
 - 
    interfaceSubclass
数値
USB インターフェースのサブクラス。
 
IsochronousTransferInfo
プロパティ
- 
    packetLength
数値
この転送内の各パケットの長さ。
 - 
    packets
数値
この転送のパケットの合計数。
 - 
    transferInfo
転送パラメータ。このパラメータ ブロックで指定された転送長またはデータバッファは、
packetLength境界に沿って分割され、転送の個々のパケットを形成します。 
Recipient
列挙型
"device" 
 
"interface" 
 
"endpoint" 
 
"other" 
 
RequestType
列挙型
"standard" 
 
"class" 
 
"vendor" 
 
「reserved」 
 
SynchronizationType
割り込みモードとアイソクロナス モードの場合、SynchronizationType と UsageType は USB 仕様内の同名にマッピングされます。
列挙型
"asynchronous" 
 
"adaptive" 
 
"synchronous" 
 
TransferResultInfo
プロパティ
- 
    データ
ArrayBuffer 省略可
入力転送によって返されるデータ。出力転送用の
undefined。 - 
    resultCode
number 省略可
値
0は、転送が成功したことを示します。その他の値は失敗を示します。 
TransferType
列挙型
"control" 
 
"interrupt" 
 
"isochronous" 
 
"bulk" 
 
UsageType
列挙型
"data" 
 
"feedback" 
 
"explicitFeedback" 
 
"periodic" 
 
"notification" 
 
メソッド
bulkTransfer()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
指定したデバイスで一括転送を実行します。
パラメータ
- 
    ハンドル
デバイスへの接続が開いている。
 - 
    transferInfo
転送パラメータ。
 - 
    callback
関数 省略可
callbackパラメータは次のようになります。(info: TransferResultInfo) => void
 
戻り値
- 
            
Promise<TransferResultInfo>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
 
claimInterface()
chrome.usb.claimInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
): Promise<void>
USB デバイスのインターフェースを要求します。データをインターフェースまたは関連付けられたエンドポイントに転送する前に、インターフェースを要求する必要があります。一度にインターフェースを要求できる接続ハンドルは 1 つだけです。インターフェースがすでに要求されている場合、この呼び出しは失敗します。
インターフェースが不要になったら、releaseInterface を呼び出す必要があります。
パラメータ
- 
    ハンドル
デバイスへの接続が開いている。
 - 
    interfaceNumber
数値
要求するインターフェース。
 - 
    callback
関数 省略可
callbackパラメータは次のようになります。() => void
 
戻り値
- 
            
Promise<void>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
 
closeDevice()
chrome.usb.closeDevice(
handle: ConnectionHandle,
callback?: function,
): Promise<void>
接続ハンドルを閉じます。ハンドルが閉じられた後にハンドルでオペレーションを呼び出すのは安全なオペレーションですが、アクションは実行されません。
パラメータ
- 
    ハンドル
閉じる
ConnectionHandle。 - 
    callback
関数 省略可
callbackパラメータは次のようになります。() => void
 
戻り値
- 
            
Promise<void>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
 
controlTransfer()
chrome.usb.controlTransfer(
handle: ConnectionHandle,
transferInfo: ControlTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
指定されたデバイスで制御転送を実行します。
制御転送は、デバイス、インターフェース、エンドポイントのいずれかを参照します。インターフェースまたはエンドポイントへの転送には、インターフェースの要求が必要です。
パラメータ
- 
    ハンドル
デバイスへの接続が開いている。
 - 
    transferInfo
 - 
    callback
関数 省略可
callbackパラメータは次のようになります。(info: TransferResultInfo) => void
 
戻り値
- 
            
Promise<TransferResultInfo>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
 
findDevices()
chrome.usb.findDevices(
options: EnumerateDevicesAndRequestAccessOptions,
callback?: function,
): Promise<ConnectionHandle[]>
ベンダー ID、プロダクト ID、インターフェース ID(省略可)で指定された USB デバイスを検索し、権限で許可されている場合は使用できるように開きます。
アクセス リクエストが拒否された場合や、デバイスを開くことができなかった場合、接続ハンドルは作成されず、返されません。
このメソッドを呼び出すことは、デバイスごとに getDevices の後に openDevice を呼び出すことと同等です。
パラメータ
- 
    
ターゲット デバイスで検索するプロパティ。
 - 
    callback
関数 省略可
callbackパラメータは次のようになります。(handles: ConnectionHandle[]) => void
- 
    ハンドル
 
 - 
    
 
戻り値
- 
            
Promise<ConnectionHandle[]>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
 
getConfiguration()
chrome.usb.getConfiguration(
handle: ConnectionHandle,
callback?: function,
): Promise<ConfigDescriptor>
現在選択されている構成の構成記述子を取得します。
パラメータ
- 
    ハンドル
デバイスへの接続が開いている。
 - 
    callback
関数 省略可
callbackパラメータは次のようになります。(config: ConfigDescriptor) => void
- 
    config
 
 - 
    
 
戻り値
- 
            
Promise<ConfigDescriptor>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
 
getConfigurations()
chrome.usb.getConfigurations(
device: Device,
callback?: function,
): Promise<ConfigDescriptor[]>
デバイス構成記述子の完全なセットを返します。
パラメータ
- 
    デバイス
記述子を取得する
Device。 - 
    callback
関数 省略可
callbackパラメータは次のようになります。(configs: ConfigDescriptor[]) => void
- 
    configs
 
 - 
    
 
戻り値
- 
            
Promise<ConfigDescriptor[]>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
 
getDevices()
chrome.usb.getDevices(
options: EnumerateDevicesOptions,
callback?: function,
): Promise<Device[]>
接続された USB デバイスを列挙します。
パラメータ
戻り値
- 
            
Promise<Device[]>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
 
getUserSelectedDevices()
chrome.usb.getUserSelectedDevices(
options: DevicePromptOptions,
callback?: function,
): Promise<Device[]>
デバイス選択ツールをユーザーに表示し、選択された Device を返します。ユーザーがキャンセルすると、ピッカー デバイスは空になります。ダイアログを表示するには、ユーザー操作が必要です。ユーザー操作がない場合、コールバックはユーザーがキャンセルしたかのように実行されます。
パラメータ
戻り値
- 
            
Promise<Device[]>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
 
interruptTransfer()
chrome.usb.interruptTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
指定されたデバイスで割り込み転送を実行します。
パラメータ
- 
    ハンドル
デバイスへの接続が開いている。
 - 
    transferInfo
転送パラメータ。
 - 
    callback
関数 省略可
callbackパラメータは次のようになります。(info: TransferResultInfo) => void
 
戻り値
- 
            
Promise<TransferResultInfo>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
 
isochronousTransfer()
chrome.usb.isochronousTransfer(
handle: ConnectionHandle,
transferInfo: IsochronousTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
特定のデバイスでアイソクロナス転送を実行します。
パラメータ
- 
    ハンドル
デバイスへの接続が開いている。
 - 
    transferInfo
 - 
    callback
関数 省略可
callbackパラメータは次のようになります。(info: TransferResultInfo) => void
 
戻り値
- 
            
Promise<TransferResultInfo>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
 
listInterfaces()
chrome.usb.listInterfaces(
handle: ConnectionHandle,
callback?: function,
): Promise<InterfaceDescriptor[]>
USB デバイスのすべてのインターフェースをリストします。
パラメータ
- 
    ハンドル
デバイスへの接続が開いている。
 - 
    callback
関数 省略可
callbackパラメータは次のようになります。(descriptors: InterfaceDescriptor[]) => void
- 
    記述子
 
 - 
    
 
戻り値
- 
            
Promise<InterfaceDescriptor[]>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
 
openDevice()
chrome.usb.openDevice(
device: Device,
callback?: function,
): Promise<ConnectionHandle>
getDevices から返された USB デバイスを開きます。
パラメータ
- 
    デバイス
開く
Device。 - 
    callback
関数 省略可
callbackパラメータは次のようになります。(handle: ConnectionHandle) => void
- 
    ハンドル
 
 - 
    
 
戻り値
- 
            
Promise<ConnectionHandle>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
 
releaseInterface()
chrome.usb.releaseInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
): Promise<void>
申し立てられたインターフェースを解放します。
パラメータ
- 
    ハンドル
デバイスへの接続が開いている。
 - 
    interfaceNumber
数値
リリースするインターフェース。
 - 
    callback
関数 省略可
callbackパラメータは次のようになります。() => void
 
戻り値
- 
            
Promise<void>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
 
requestAccess()
chrome.usb.requestAccess(
device: Device,
interfaceId: number,
callback?: function,
): Promise<boolean>
この関数は Chrome OS 固有のものであり、他のプラットフォームで呼び出すと失敗していました。このオペレーションは openDevice の一部として暗黙的に実行されるようになり、この関数はすべてのプラットフォームで true を返します。
デバイスの指定されたインターフェースが要求されていない場合、パーミッション ブローカーから Chrome OS によって要求されたデバイスへのアクセスをリクエストします。
パラメータ
- 
    デバイス
アクセス権をリクエストする
Device。 - 
    interfaceId
数値
リクエストされた特定のインターフェース。
 - 
    callback
関数 省略可
callbackパラメータは次のようになります。(success: boolean) => void
- 
    成功
ブール値
 
 - 
    
 
戻り値
- 
            
Promise<boolean>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
 
resetDevice()
chrome.usb.resetDevice(
handle: ConnectionHandle,
callback?: function,
): Promise<boolean>
USB デバイスのリセットを試みます。リセットに失敗すると、指定された接続ハンドルが閉じられ、USB デバイスが切断されてから再接続されたように見えます。この場合、デバイスを取得するために getDevices または findDevices を再度呼び出す必要があります。
パラメータ
- 
    ハンドル
リセットする接続ハンドル。
 - 
    callback
関数 省略可
callbackパラメータは次のようになります。(success: boolean) => void
- 
    成功
ブール値
 
 - 
    
 
戻り値
- 
            
Promise<boolean>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
 
setConfiguration()
chrome.usb.setConfiguration(
handle: ConnectionHandle,
configurationValue: number,
callback?: function,
): Promise<void>
デバイス設定を選択します。
この関数は、デバイスの利用可能な構成のいずれかを選択することで、デバイスを効果的にリセットします。0 より大きい構成値のみが有効ですが、バグのあるデバイスの中には 0 の構成が動作するものもあるため、この値は許可されています。
パラメータ
- 
    ハンドル
デバイスへの接続が開いている。
 - 
    configurationValue
数値
 - 
    callback
関数 省略可
callbackパラメータは次のようになります。() => void
 
戻り値
- 
            
Promise<void>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
 
setInterfaceAlternateSetting()
chrome.usb.setInterfaceAlternateSetting(
handle: ConnectionHandle,
interfaceNumber: number,
alternateSetting: number,
callback?: function,
): Promise<void>
以前に要求されたインターフェースの代替設定を選択します。
パラメータ
- 
    ハンドル
このインターフェースが要求されたデバイスへのオープン接続。
 - 
    interfaceNumber
数値
構成するインターフェース。
 - 
    alternateSetting
数値
設定する代替設定。
 - 
    callback
関数 省略可
callbackパラメータは次のようになります。() => void
 
戻り値
- 
            
Promise<void>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
 
イベント
onDeviceAdded
chrome.usb.onDeviceAdded.addListener(
callback: function,
)
デバイスがシステムに追加されたときに生成されるイベント。イベントは、デバイスにアクセスする権限を持つアプリと拡張機能にのみブロードキャストされます。権限は、インストール時にユーザーがオプションの権限を承認したとき(permissions.request を参照)、または getUserSelectedDevices を介して付与されている可能性があります。
onDeviceRemoved
chrome.usb.onDeviceRemoved.addListener(
callback: function,
)
デバイスがシステムから削除されたときに生成されるイベント。配信されるイベントについては、onDeviceAdded をご覧ください。