説明
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
をご覧ください。