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