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 フィールドについては、前掲書をご覧ください。

  • 長さ

    数値(省略可)

    受信する最大バイト数(入力転送でのみ必須)。

  • 受取人

    転送先。"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省略可

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

  • 転送の種類。

  • 用途

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

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

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

パラメータ

戻り値

  • Promise&lt;TransferResultInfo&gt;

    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

    関数(省略可)

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

    () => void

戻り値

  • 約束 <void>

    Chrome 116 以降

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

closeDevice()

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

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

パラメータ

  • ハンドル

    閉じる ConnectionHandle

  • callback

    関数(省略可)

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

    () => void

戻り値

  • 約束 <void>

    Chrome 116 以降

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

controlTransfer()

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

指定されたデバイスでコントロール転送を実行します。

コントロール転送とは、デバイス、インターフェース、またはエンドポイントのいずれかを指します。インターフェースまたはエンドポイントへの転送には、インターフェースの申請が必要です。

パラメータ

戻り値

  • Promise&lt;TransferResultInfo&gt;

    Chrome 116 以降

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

findDevices()

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

ベンダー ID、製品 ID、インターフェース ID(省略可)で指定された USB デバイスを検索し、権限があればそれらが使用可能になります。

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

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

パラメータ

戻り値

  • Promise&lt;ConnectionHandle[]&gt;

    Chrome 116 以降

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

getConfiguration()

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

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

パラメータ

戻り値

  • Promise&lt;ConfigDescriptor&gt;

    Chrome 116 以降

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

getConfigurations()

<ph type="x-smartling-placeholder"></ph> 約束 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<デバイス[]>

    Chrome 116 以降

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

getUserSelectedDevices()

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

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

パラメータ

  • オプション

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

  • callback

    関数(省略可)

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

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

パラメータ

戻り値

  • Promise&lt;TransferResultInfo&gt;

    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 デバイスのすべてのインターフェースを一覧表示します。

パラメータ

戻り値

  • Promise&lt;InterfaceDescriptor[]&gt;

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

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

要求されたインターフェースを解放します。

パラメータ

  • ハンドル

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

  • interfaceNumber

    数値

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

  • callback

    関数(省略可)

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

    () => void

戻り値

  • 約束 <void>

    Chrome 116 以降

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

requestAccess()

<ph type="x-smartling-placeholder"></ph> 約束 非推奨
chrome.usb.requestAccess(
  device: Device,
  interfaceId: number,
  callback?: function,
)

この関数は ChromeOS 固有のものであるため、他のプラットフォームで呼び出すと失敗します。この操作は openDevice の一部として暗黙的に実行され、この関数はすべてのプラットフォームで true を返します。

デバイス上の特定のインターフェースが申請されていない場合、権限ブローカーから ChromeOS によって要求されているデバイスへのアクセスをリクエストします。

パラメータ

  • デバイス

    アクセスをリクエストする Device

  • interfaceId

    数値

    リクエストされた特定のインターフェース。

  • callback

    関数(省略可)

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

    (success: boolean) => void

    • success

      ブール値

戻り値

  • Promise&lt;boolean&gt;

    Chrome 116 以降

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

resetDevice()

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

USB デバイスのリセットを試みます。リセットに失敗すると、指定された接続ハンドルが閉じられ、USB デバイスが接続解除された状態で再接続されたように見えます。この場合、デバイスを取得するには、getDevices または findDevices を再度呼び出す必要があります。

パラメータ

  • ハンドル

    リセットする接続ハンドル。

  • callback

    関数(省略可)

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

    (success: boolean) => void

    • success

      ブール値

戻り値

  • Promise&lt;boolean&gt;

    Chrome 116 以降

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

setConfiguration()

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

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

この機能により、デバイスで利用可能な構成の 1 つを選択することで、実質的にデバイスをリセットできます。0 より大きい設定値のみ有効ですが、バグのある一部のデバイスでは設定が 0 で動作しているため、この値は許可されます。

パラメータ

  • ハンドル

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

  • configurationValue

    数値

  • callback

    関数(省略可)

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

    () => void

戻り値

  • 約束 <void>

    Chrome 116 以降

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

setInterfaceAlternateSetting()

<ph type="x-smartling-placeholder"></ph> 約束
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 を通じて付与されている可能性があります。

パラメータ

  • callback

    関数

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

    (device: Device) => void

onDeviceRemoved

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

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

パラメータ

  • callback

    関数

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

    (device: Device) => void