説明
chrome.usb API を使用して、接続された USB デバイスとやり取りします。この API は、アプリのコンテキスト内から USB オペレーションへのアクセスを提供します。この API を使用すると、アプリはハードウェア デバイスのドライバとして機能できます。この API によって生成されたエラーは、runtime.lastError を設定し、関数の通常のコールバックを実行することで報告されます。この場合、コールバックの通常のパラメータは未定義になります。
権限
usb型
ConfigDescriptor
プロパティ
- 
    アクティブブール値 Chrome 47 以降これはアクティブな構成ですか? 
- 
    configurationValue数値 構成番号。 
- 
    説明文字列 省略可 構成の説明。 
- 
    extra_dataArrayBuffer この構成に関連付けられた追加の記述子データ。 
- 
    インターフェース使用可能なインターフェース。 
- 
    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リクエストのタイプ。 
- 
    timeoutnumber 省略可 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
プロパティ
- 
    interfaceClassnumber 省略可 USB インターフェース クラス。デバイス上の任意のインターフェースに一致します。 
- 
    interfaceProtocolnumber 省略可 USB インターフェース プロトコル。インターフェース サブクラスが一致する場合にのみチェックされます。 
- 
    interfaceSubclassnumber 省略可 USB インターフェース サブクラス。インターフェース クラスが一致する場合にのみチェックされます。 
- 
    productIdnumber 省略可 デバイスのプロダクト ID。ベンダー ID が一致する場合にのみチェックされます。 
- 
    vendorIdnumber 省略可 デバイス ベンダー ID。 
DevicePromptOptions
プロパティ
- 
    フィルタDeviceFilter[] 省略可 ユーザーに表示されるデバイスのリストをフィルタします。複数のフィルタが指定されている場合、いずれかのフィルタに一致するデバイスが表示されます。 
- 
    複数ブール値(省略可) ユーザーが複数のデバイスを選択できるようにします。 
Direction
Direction、Recipient、RequestType、TransferType はすべて、USB 仕様内の同名にマッピングされます。
列挙型
"in" 
 
"out" 
 
EndpointDescriptor
プロパティ
- 
    住所数値 エンドポイント アドレス。 
- 
    direction転送方向。 
- 
    extra_dataArrayBuffer このエンドポイントに関連付けられた追加の記述子データ。 
- 
    maximumPacketSize数値 最大パケットサイズ。 
- 
    pollingIntervalnumber 省略可 ポーリング間隔(割り込みとアイソクロナスのみ)。 
- 
    同期転送同期モード(アイソクロナスのみ)。 
- 
    type転送タイプ。 
- 
    用途UsageType 省略可 エンドポイントの使用状況のヒント。 
EnumerateDevicesAndRequestAccessOptions
プロパティ
- 
    interfaceIdnumber 省略可 アクセスをリクエストするインターフェース ID。Chrome OS でのみご利用いただけます。他のプラットフォームには影響しません。 
- 
    productId数値 商品 ID。 
- 
    vendorId数値 デバイス ベンダー ID。 
EnumerateDevicesOptions
プロパティ
- 
    フィルタDeviceFilter[] 省略可 指定されたフィルタに一致するデバイスが返されます。フィルタリストが空の場合、アプリが権限を持っているすべてのデバイスが返されます。 
- 
    productIdnumber 省略可 非推奨DeviceFilter.productIdを設定するのと同じです。
- 
    vendorIdnumber 省略可 非推奨DeviceFilter.vendorIdを設定するのと同じです。
GenericTransferInfo
プロパティ
- 
    データArrayBuffer 省略可 送信するデータ(出力転送でのみ必須)。 
- 
    direction転送方向( "in"または"out")。
- 
    endpoint数値 ターゲット エンドポイント アドレス。このエンドポイントを含むインターフェースは、要求されている必要があります。 
- 
    長さnumber 省略可 受信する最大バイト数(入力転送でのみ必須)。 
- 
    timeoutnumber 省略可 Chrome 43 以降リクエスト タイムアウト(ミリ秒単位)。デフォルト値の 0は、タイムアウトがないことを示します。
InterfaceDescriptor
プロパティ
- 
    alternateSetting数値 インターフェースの代替設定番号(デフォルトは 0)
- 
    説明文字列 省略可 インターフェースの説明。 
- 
    エンドポイント使用可能なエンドポイント。 
- 
    extra_dataArrayBuffer このインターフェースに関連付けられた追加のディスクリプタ データ。 
- 
    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。
- 
    resultCodenumber 省略可 値 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 をご覧ください。