説明
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
フィールドについては、前掲書をご覧ください。 -
長さ
数値(省略可)
受信する最大バイト数(入力転送でのみ必須)。
-
受取人
転送先。
"interface"
または"endpoint"
の場合は、index
で指定されたターゲットを申請する必要があります。 -
request
数値
bRequest
フィールドについては、Universal Serial Bus Specification Revision 1.1 § 9.3 をご覧ください。 -
requestType
リクエストの種類。
-
timeout
数値(省略可)
Chrome 43 以降リクエストのタイムアウト(ミリ秒単位)。デフォルト値
0
は、タイムアウトがないことを示します。 -
値
数値
wValue
フィールドについては、前掲書をご覧ください。
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
数値(省略可)
USB インターフェース クラス。デバイスの任意のインターフェースに一致します。
-
interfaceProtocol
数値(省略可)
USB インターフェース プロトコル。インターフェース サブクラスが一致する場合にのみチェックされます。
-
interfaceSubclass
数値(省略可)
USB インターフェース サブクラス。インターフェース クラスが一致する場合にのみチェックされます。
-
productId
数値(省略可)
デバイスのプロダクト ID。ベンダー ID が一致する場合にのみチェックされます。
-
vendorId
数値(省略可)
デバイス ベンダー ID。
DevicePromptOptions
プロパティ
-
フィルタ
DeviceFilter[] 省略可
ユーザーに提示されているデバイスのリストをフィルタします。複数のフィルタを指定すると、いずれかのフィルタに一致するデバイスが表示されます。
-
複数
ブール値(省略可)
ユーザーが複数のデバイスを選択できるようにします。
Direction
Direction、Recipient、RequestType、TransferType はすべて、USB 仕様内でそれぞれの名前にマッピングされます。
列挙型
「in」
「out」
EndpointDescriptor
プロパティ
-
住所
数値
エンドポイント アドレス。
-
direction
転送の方向。
-
extra_data
ArrayBuffer
このエンドポイントに関連付けられている追加の記述子データ。
-
maximumPacketSize
数値
最大パケットサイズ。
-
pollingInterval
数値(省略可)
ポーリング間隔(割り込みとアイソクロナスのみ)。
-
同期
SynchronizationType(省略可)
転送同期モード(アイソクロナスのみ)。
-
type
転送の種類。
-
用途
UsageType 省略可
エンドポイントの使用に関するヒント。
EnumerateDevicesAndRequestAccessOptions
プロパティ
-
interfaceId
数値(省略可)
アクセスをリクエストするインターフェース ID。ChromeOS でのみご利用いただけます。他のプラットフォームには影響しません。
-
productId
数値
商品 ID。
-
vendorId
数値
デバイス ベンダー ID。
EnumerateDevicesOptions
プロパティ
-
フィルタ
DeviceFilter[] 省略可
指定したフィルタに一致するデバイスが返されます。フィルタリストが空の場合は、アプリが権限を持っているすべてのデバイスが返されます。
-
productId
数値(省略可)
<ph type="x-smartling-placeholder"></ph> 非推奨DeviceFilter.productId
の設定と同等です。 -
vendorId
数値(省略可)
<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」
"endpoint"
「その他」
RequestType
列挙型
"standard"
"class"
"vendor"
"reserved"
SynchronizationType
割り込みモードとアイソクロナス モードの場合、SynchronizationType と UsageType は USB 仕様内の名前にマッピングされます。
列挙型
"asynchronous"
"adaptive"
"同期"
TransferResultInfo
プロパティ
-
データ
ArrayBuffer(省略可)
入力転送によって返されるデータ。出力転送の場合は
undefined
。 -
resultCode
数値(省略可)
値
0
は、転送が成功したことを示します。他の値は失敗を示します。
TransferType
列挙型
"control"
"中断"
"isochronous"
"Bulk"
UsageType
列挙型
"data"
"feedback"
"AutoMLFeedback"
"定期的"
「通知」
メソッド
bulkTransfer()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
指定したデバイスで一括転送を実行します。
パラメータ
-
ハンドル
デバイスに対するオープン接続。
-
transferInfo
転送パラメータ。
-
callback
関数(省略可)
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
関数(省略可)
callback
パラメータは次のようになります。() => void
戻り値
-
約束 <void>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
closeDevice()
chrome.usb.closeDevice(
handle: ConnectionHandle,
callback?: function,
)
接続ハンドルを閉じます。ハンドルが閉じられた後にそのハンドルに対するオペレーションを呼び出すのは安全なオペレーションですが、アクションが実行されません。
パラメータ
-
ハンドル
閉じる
ConnectionHandle
。 -
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
戻り値
-
約束 <void>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
controlTransfer()
chrome.usb.controlTransfer(
handle: ConnectionHandle,
transferInfo: ControlTransferInfo,
callback?: function,
)
指定されたデバイスでコントロール転送を実行します。
コントロール転送とは、デバイス、インターフェース、またはエンドポイントのいずれかを指します。インターフェースまたはエンドポイントへの転送には、インターフェースの申請が必要です。
パラメータ
-
ハンドル
デバイスに対するオープン接続。
-
transferInfo
-
callback
関数(省略可)
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
関数(省略可)
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<デバイス[]>
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
関数(省略可)
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
関数(省略可)
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
戻り値
-
約束 <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
関数(省略可)
callback
パラメータは次のようになります。(success: boolean) => void
-
success
ブール値
-
戻り値
-
Promise<boolean>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
setConfiguration()
chrome.usb.setConfiguration(
handle: ConnectionHandle,
configurationValue: number,
callback?: function,
)
デバイス設定を選択します。
この機能により、デバイスで利用可能な構成の 1 つを選択することで、実質的にデバイスをリセットできます。0
より大きい設定値のみ有効ですが、バグのある一部のデバイスでは設定が 0
で動作しているため、この値は許可されます。
パラメータ
-
ハンドル
デバイスに対するオープン接続。
-
configurationValue
数値
-
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
戻り値
-
約束 <void>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
setInterfaceAlternateSetting()
chrome.usb.setInterfaceAlternateSetting(
handle: ConnectionHandle,
interfaceNumber: number,
alternateSetting: number,
callback?: function,
)
以前に申請したインターフェースの代替設定を選択します。
パラメータ
-
ハンドル
このインターフェースが申請されているデバイスへのオープン接続。
-
interfaceNumber
数値
設定するインターフェース。
-
alternateSetting
数値
設定する代替設定。
-
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
戻り値
-
約束 <void>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。
イベント
onDeviceAdded
chrome.usb.onDeviceAdded.addListener(
callback: function,
)
デバイスがシステムに追加されたときに生成されるイベント。イベントは、デバイスへのアクセス権限を持つアプリと拡張機能にのみブロードキャストされます。権限が、インストール時、ユーザーがオプションの権限を承認したとき(permissions.request
を参照)、または getUserSelectedDevices
を通じて付与されている可能性があります。
onDeviceRemoved
chrome.usb.onDeviceRemoved.addListener(
callback: function,
)
デバイスがシステムから削除されたときに生成されるイベント。配信されるイベントについては、onDeviceAdded
をご覧ください。