chrome.usb

説明

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

    数値(省略可)

    ポーリング間隔(割り込みとアイソクロナスのみ)。

  • 同期

    転送同期モード(アイソクロナスのみ)。

  • 転送の種類。

  • 用途

    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()

Promise
chrome.usb.bulkTransfer(
  handle: ConnectionHandle,
  transferInfo: GenericTransferInfo,
  callback?: function,
)

指定したデバイスで一括転送を実行します。

パラメータ

戻り値

  • Chrome 116 以降

    Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

claimInterface()

<ph type="x-smartling-placeholder"></ph> 約束
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()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.usb.closeDevice(
  handle: ConnectionHandle,
  callback?: function,
)

接続ハンドルを閉じます。ハンドルを閉じた後にハンドルに対するオペレーションを呼び出すことは安全なオペレーションですが、アクションは実行されません。

パラメータ

  • ハンドル

    閉じる ConnectionHandle

  • callback

    function 省略可

    callback パラメータは次のようになります。

    () => void

戻り値

  • Promise<void>

    Chrome 116 以降

    Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

controlTransfer()

Promise
chrome.usb.controlTransfer(
  handle: ConnectionHandle,
  transferInfo: ControlTransferInfo,
  callback?: function,
)

指定したデバイスで制御転送を実行します。

制御転送は、デバイス、インターフェース、エンドポイントのいずれかを指します。インターフェースまたはエンドポイントへの転送では、インターフェースを申請する必要があります。

パラメータ

戻り値

  • Chrome 116 以降

    Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

findDevices()

Promise
chrome.usb.findDevices(
  options: EnumerateDevicesAndRequestAccessOptions,
  callback?: function,
)

ベンダー ID、プロダクト ID、(必要に応じて)インターフェース ID で指定された USB デバイスを検索し、権限が許可されている場合は開いて使用します。

アクセス リクエストが拒否されたか、デバイスを開けなかった場合、接続ハンドルは作成も返されません。

このメソッドを呼び出すことは、デバイスごとに getDevices の後に openDevice を呼び出すことと同じです。

パラメータ

戻り値

  • Promise&lt;ConnectionHandle[]&gt;

    Chrome 116 以降

    Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

getConfiguration()

Promise
chrome.usb.getConfiguration(
  handle: ConnectionHandle,
  callback?: function,
)

現在選択されている構成の構成記述子を取得します。

パラメータ

戻り値

  • Promise&lt;ConfigDescriptor&gt;

    Chrome 116 以降

    Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

getConfigurations()

Promise Chrome 47 以降
chrome.usb.getConfigurations(
  device: Device,
  callback?: function,
)

デバイス構成記述子の完全なセットを返します。

パラメータ

戻り値

  • Promise&lt;ConfigDescriptor[]&gt;

    Chrome 116 以降

    Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

getDevices()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.usb.getDevices(
  options: EnumerateDevicesOptions,
  callback?: function,
)

接続されている USB デバイスを列挙します。

パラメータ

  • オプション

    対象デバイスで検索するプロパティ。

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    (devices: Device[]) => void

戻り値

  • Promise<Device[]>

    Chrome 116 以降

    Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

getUserSelectedDevices()

Promise
chrome.usb.getUserSelectedDevices(
  options: DevicePromptOptions,
  callback?: function,
)

ユーザーにデバイス選択ツールを表示し、選択された Device を返します。ユーザーが選択ツールをキャンセルすると、デバイスは空になります。このダイアログを表示するには、ユーザーの操作が必要です。ユーザーによる操作が行われていない場合、コールバックはユーザーがキャンセルした場合と同様に実行されます。

パラメータ

  • オプション

    デバイス選択ツールのダイアログ ボックスの構成。

  • callback

    function 省略可

    callback パラメータは次のようになります。

    (devices: Device[]) => void

戻り値

  • Promise<デバイス[]>

    Chrome 116 以降

    Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

interruptTransfer()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.usb.interruptTransfer(
  handle: ConnectionHandle,
  transferInfo: GenericTransferInfo,
  callback?: function,
)

指定したデバイスで割り込み転送を実行します。

パラメータ

戻り値

  • Chrome 116 以降

    Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

isochronousTransfer()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.usb.isochronousTransfer(
  handle: ConnectionHandle,
  transferInfo: IsochronousTransferInfo,
  callback?: function,
)

特定のデバイスで同期転送を実行します。

パラメータ

戻り値

  • Promise&lt;TransferResultInfo&gt;

    Chrome 116 以降

    Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

listInterfaces()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.usb.listInterfaces(
  handle: ConnectionHandle,
  callback?: function,
)

USB デバイスのすべてのインターフェースを一覧表示します。

パラメータ

戻り値

  • Chrome 116 以降

    Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

openDevice()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.usb.openDevice(
  device: Device,
  callback?: function,
)

getDevices から返された USB デバイスを開きます。

パラメータ

戻り値

  • Promise&lt;ConnectionHandle&gt;

    Chrome 116 以降

    Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

releaseInterface()

Promise
chrome.usb.releaseInterface(
  handle: ConnectionHandle,
  interfaceNumber: number,
  callback?: function,
)

申し立てが行われたインターフェースを解放します。

パラメータ

  • ハンドル

    デバイスに対するオープン接続。

  • interfaceNumber

    数値

    リリースするインターフェース。

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    () => void

戻り値

  • Promise<void>

    Chrome 116 以降

    Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

requestAccess()

Promise 非推奨
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()

Promise
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()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.usb.setConfiguration(
  handle: ConnectionHandle,
  configurationValue: number,
  callback?: function,
)

デバイス設定を選択します。

この機能は、デバイスで利用可能な構成のいずれかを選択することで、デバイスを効果的にリセットします。0 より大きい構成値のみが有効ですが、バグのあるデバイスの中には、動作する構成 0 があるため、この値が許可されるものもあります。

パラメータ

  • ハンドル

    デバイスへの接続が開いている。

  • configurationValue

    数値

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    () => void

戻り値

  • Promise<void>

    Chrome 116 以降

    Promise は Manifest V3 以降でのみサポートされています。他のプラットフォームではコールバックを使用する必要があります。

setInterfaceAlternateSetting()

Promise
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 を通じて付与されている可能性があります。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (device: Device) => void

onDeviceRemoved

chrome.usb.onDeviceRemoved.addListener(
  callback: function,
)

デバイスがシステムから削除されたときに生成されるイベント。配信されるイベントについては、onDeviceAdded をご覧ください。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (device: Device) => void