説明
chrome.usb
API を使用して、接続された USB デバイスを操作します。この API を使用すると、アプリのコンテキストから USB 操作にアクセスできます。この API を使用すると、アプリはハードウェア デバイスのドライバとして機能します。この API によって生成されたエラーは、runtime.lastError
を設定して関数の通常のコールバックを実行することで報告されます。この場合、コールバックの通常のパラメータは未定義になります。
権限
usb
型
ConfigDescriptor
プロパティ
-
アクティブであることを表します。
boolean
Chrome 47 以降これは有効な設定ですか?
-
configurationValue
数値
構成番号。
-
description
string(省略可)
構成の説明。
-
extra_data
ArrayBuffer
この構成に関連付けられた追加の記述子データ。
-
インターフェース
使用可能なインターフェース。
-
maxPower
数値
このデバイスに必要な最大電力(ミリアンペア(mA)単位)。
-
remoteWakeup
boolean
デバイスはリモート ウェイクアップをサポートしている。
-
selfPowered
boolean
デバイスがセルフパワーになっている。
ConnectionHandle
プロパティ
-
handle
数値
USB デバイスに対するこの接続と、申請されているすべての関連インターフェースおよび保留中の転送を表す不透明ハンドル。デバイスを開くたびに新しいハンドルが作成されます。接続ハンドルは
Device.device
とは異なります。 -
productId
数値
商品 ID。
-
vendorId
数値
デバイスのベンダー ID。
ControlTransferInfo
プロパティ
-
data
ArrayBuffer 省略可
送信するデータ(出力転送でのみ必要)。
-
direction
乗り換えの方向(
"in"
または"out"
)。 -
指数
数値
wIndex
フィールド。同上をご覧ください。 -
length
number(省略可)
受信する最大バイト数(入力転送でのみ必要)。
-
受取人
転送先。
"interface"
または"endpoint"
の場合、index
で指定されたターゲットを使用する必要があります。 -
request
数値
bRequest
フィールド(Universal Serial Bus Specification Revision 1.1 § 9.3 をご覧ください) -
requestType
リクエストのタイプ。
-
タイムアウト
number(省略可)
Chrome 43 以降リクエストのタイムアウト(ミリ秒単位)。デフォルト値
0
はタイムアウトがないことを示します。 -
value
数値
wValue
フィールド。同上をご覧ください。
Device
プロパティ
-
ね
数値
USB デバイスの不透明な ID。ステータスは、デバイスを電源から外すまで変化しません。
-
manufacturerName
文字列
Chrome 46 以降デバイスから読み取られた iManufacturer 文字列(利用可能な場合)。
-
productId
数値
商品 ID。
-
productName
文字列
Chrome 46 以降デバイスから読み取られた iProduct 文字列(利用可能な場合)。
-
serialNumber
文字列
Chrome 46 以降デバイスから読み取られた iSerialNumber 文字列(利用可能な場合)。
-
vendorId
数値
デバイスのベンダー ID。
-
バージョン
数値
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 仕様内でそれぞれの名前にマッピングされます。
Enum
"in"
"out"
EndpointDescriptor
プロパティ
-
address
数値
エンドポイント アドレス。
-
direction
転送の指示。
-
extra_data
ArrayBuffer
このエンドポイントに関連付けられている追加の記述子データ。
-
maximumPacketSize
数値
最大パケットサイズ。
-
pollingInterval
number(省略可)
ポーリング間隔(割り込みとアイソクロナスのみ)。
-
同期
転送同期モード(アイソクロナスのみ)。
-
タイプ
転送タイプ。
-
usage
UsageType 省略可
エンドポイントの使用方法のヒント。
EnumerateDevicesAndRequestAccessOptions
プロパティ
-
interfaceId
number(省略可)
アクセスをリクエストするインターフェース ID。ChromeOS でのみご利用いただけます。他のプラットフォームには影響しません。
-
productId
数値
商品 ID。
-
vendorId
数値
デバイスのベンダー ID。
EnumerateDevicesOptions
プロパティ
-
フィルタ
DeviceFilter[] 省略可
指定したフィルタに一致するデバイスが返されます。空のフィルタリストでは、アプリが権限を持つすべてのデバイスが返されます。
-
productId
number(省略可)
非推奨DeviceFilter.productId
の設定に相当します。 -
vendorId
number(省略可)
非推奨DeviceFilter.vendorId
の設定に相当します。
GenericTransferInfo
プロパティ
-
data
ArrayBuffer 省略可
送信するデータ(出力転送でのみ必要)。
-
direction
乗り換えの方向(
"in"
または"out"
)。 -
エンドポイント
数値
ターゲット エンドポイント アドレス。このエンドポイントを含むインターフェースは、要求する必要があります。
-
length
number(省略可)
受信する最大バイト数(入力転送でのみ必要)。
-
タイムアウト
number(省略可)
Chrome 43 以降リクエストのタイムアウト(ミリ秒単位)。デフォルト値
0
はタイムアウトがないことを示します。
InterfaceDescriptor
プロパティ
-
alternateSetting
数値
インターフェースの代替設定番号(デフォルトは
0
) -
description
string(省略可)
インターフェースの説明。
-
エンドポイント
使用可能なエンドポイント。
-
extra_data
ArrayBuffer
このインターフェースに関連付けられている追加の記述子データ。
-
interfaceClass
数値
USB インターフェース クラス。
-
interfaceNumber
数値
インターフェース番号。
-
interfaceProtocol
数値
USB インターフェース プロトコル。
-
interfaceSubclass
数値
USB インターフェース サブクラス。
IsochronousTransferInfo
プロパティ
-
packetLength
数値
この転送における各パケットの長さ。
-
packets
数値
この転送のパケットの合計数。
-
transferInfo
転送パラメータ。このパラメータ ブロックで指定された転送長またはデータバッファは、
packetLength
の境界に沿って分割され、転送の個々のパケットを形成します。
Recipient
Enum
"interface"
RequestType
Enum
"standard"
SynchronizationType
割り込みモードとアイソクロナス モードの場合、SynchronizationType と UsageType は USB 仕様内でそれぞれの名前にマッピングされます。
Enum
"adaptive"
TransferResultInfo
プロパティ
-
data
ArrayBuffer 省略可
入力転送によって返されたデータ。
undefined
: 出力転送の場合。 -
resultCode
number(省略可)
値
0
は転送が成功したことを示します。その他の値は失敗を示します。
TransferType
Enum
"control"
"bulk"
UsageType
Enum
"feedback"
"periodic"
Methods
bulkTransfer()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
指定したデバイスで一括転送を実行します。
パラメータ
-
handle
デバイスへのオープン接続。
-
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
を呼び出す必要があります。
パラメータ
-
handle
デバイスへのオープン接続。
-
interfaceNumber
数値
申請するインターフェース。
-
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
closeDevice()
chrome.usb.closeDevice(
handle: ConnectionHandle,
callback?: function,
)
接続ハンドルを閉じます。閉じられたハンドルに対するオペレーションの呼び出しは安全なオペレーションですが、アクションは実行されません。
パラメータ
-
handle
閉じる
ConnectionHandle
。 -
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
controlTransfer()
chrome.usb.controlTransfer(
handle: ConnectionHandle,
transferInfo: ControlTransferInfo,
callback?: function,
)
指定されたデバイスでコントロール転送を実行します。
コントロール転送とは、デバイス、インターフェース、エンドポイントのいずれかを指します。インターフェースまたはエンドポイントへの転送には、インターフェースを申請する必要があります。
パラメータ
-
handle
デバイスへのオープン接続。
-
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 デバイスを検索し、権限でそれらの ID が使用できるようになっているかどうかを確認します。
アクセス リクエストが拒否されたり、デバイスを開けなかったりした場合、接続ハンドルは作成されず、返されません。
このメソッドを呼び出すことは、デバイスごとに getDevices
を呼び出した後に openDevice
を呼び出すことと同等です。
パラメータ
-
対象デバイスで検索するプロパティ。
-
callback
関数(省略可)
callback
パラメータは次のようになります。(handles: ConnectionHandle[]) => void
-
ハンドル
-
戻り値
-
Promise<ConnectionHandle[]>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
getConfiguration()
chrome.usb.getConfiguration(
handle: ConnectionHandle,
callback?: function,
)
現在選択されている構成の構成記述子を取得します。
パラメータ
-
handle
デバイスへのオープン接続。
-
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<Device[]>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
interruptTransfer()
chrome.usb.interruptTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
指定されたデバイスで割り込み転送を実行します。
パラメータ
-
handle
デバイスへのオープン接続。
-
transferInfo
転送パラメータ。
-
callback
関数(省略可)
callback
パラメータは次のようになります。(info: TransferResultInfo) => void
戻り値
-
Promise<TransferResultInfo>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
isochronousTransfer()
chrome.usb.isochronousTransfer(
handle: ConnectionHandle,
transferInfo: IsochronousTransferInfo,
callback?: function,
)
特定のデバイスでアイソクロナス転送を実行します。
パラメータ
-
handle
デバイスへのオープン接続。
-
transferInfo
-
callback
関数(省略可)
callback
パラメータは次のようになります。(info: TransferResultInfo) => void
戻り値
-
Promise<TransferResultInfo>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
listInterfaces()
chrome.usb.listInterfaces(
handle: ConnectionHandle,
callback?: function,
)
USB デバイスのすべてのインターフェースを一覧表示します。
パラメータ
-
handle
デバイスへのオープン接続。
-
callback
関数(省略可)
callback
パラメータは次のようになります。(descriptors: InterfaceDescriptor[]) => void
-
descriptors
-
戻り値
-
Promise<InterfaceDescriptor[]>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
openDevice()
chrome.usb.openDevice(
device: Device,
callback?: function,
)
getDevices
から返された USB デバイスを開きます。
パラメータ
-
ね
開く
Device
。 -
callback
関数(省略可)
callback
パラメータは次のようになります。(handle: ConnectionHandle) => void
-
handle
-
戻り値
-
Promise<ConnectionHandle>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
releaseInterface()
chrome.usb.releaseInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
)
要求されたインターフェースを解放します。
パラメータ
-
handle
デバイスへのオープン接続。
-
interfaceNumber
数値
リリースするインターフェース。
-
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
requestAccess()
chrome.usb.requestAccess(
device: Device,
interfaceId: number,
callback?: function,
)
この関数は Chrome OS 固有のもので、他のプラットフォームで呼び出すと失敗します。この操作は、openDevice
の一部として暗黙的に実行され、この関数はすべてのプラットフォームで true
を返すようになりました。
デバイス上の特定のインターフェースが要求されていない場合、ChromeOS によって要求されたデバイスへのアクセスを権限ブローカーからリクエストします。
パラメータ
-
ね
アクセスをリクエストする
Device
。 -
interfaceId
数値
リクエストされた特定のインターフェース。
-
callback
関数(省略可)
callback
パラメータは次のようになります。(success: boolean) => void
-
success
boolean
-
戻り値
-
Promise<boolean>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
resetDevice()
chrome.usb.resetDevice(
handle: ConnectionHandle,
callback?: function,
)
USB デバイスのリセットを試みます。リセットに失敗すると、該当の接続ハンドルが閉じ、USB デバイスが接続解除されてから再接続されたように見えます。この場合、デバイスを取得するには、getDevices
または findDevices
を再度呼び出す必要があります。
パラメータ
-
handle
リセットする接続ハンドル。
-
callback
関数(省略可)
callback
パラメータは次のようになります。(success: boolean) => void
-
success
boolean
-
戻り値
-
Promise<boolean>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
setConfiguration()
chrome.usb.setConfiguration(
handle: ConnectionHandle,
configurationValue: number,
callback?: function,
)
デバイス設定を選択します。
この関数は、デバイスで利用可能な設定のいずれかを選択して、事実上デバイスをリセットします。0
より大きい設定値のみ有効ですが、バグのあるデバイスの中には、動作している設定 0
を使用しているものもあるため、この値が許容されます。
パラメータ
-
handle
デバイスへのオープン接続。
-
configurationValue
数値
-
callback
関数(省略可)
callback
パラメータは次のようになります。() => void
戻り値
-
Promise<void>
Chrome 116 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
setInterfaceAlternateSetting()
chrome.usb.setInterfaceAlternateSetting(
handle: ConnectionHandle,
interfaceNumber: number,
alternateSetting: number,
callback?: function,
)
以前に登録したインターフェースの別の設定を選択します。
パラメータ
-
handle
このインターフェースが申請されているデバイスへのオープン接続。
-
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
をご覧ください。