2025 年 3 月 27 日より、AOSP のビルドとコントリビューションには aosp-main
ではなく android-latest-release
を使用することをおすすめします。詳細については、AOSP の変更をご覧ください。
USB ヘッドセット: アクセサリー仕様
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
このドキュメントでは、USB ヘッドセットが Android エコシステム全体で均一に機能するためのいくつかの特性を規定します。デジタル USB オーディオ インターフェースに対応したヘッドセットのみが対象です。USB Type-C 仕様に従って USB-C 向けに機械的に調整された純正アナログ ヘッドセットは対象外です。
このドキュメントでは最小要件について説明します。アクセサリ メーカーは、これらの要件を念頭に置いて機能を追加することをおすすめします。
機能の概要
USB ヘッドセットには、さまざまな基本機能と高度な機能を実装できます。この仕様は、次に示す必須の基本機能のみをカバーします。
- ステレオ出力
- オプションのマイク(推奨)
- 音量、再生、通話を制御するファンクション ボタン
USB Audio Class 端子タイプ
ヘッドフォンとヘッドセットは、以下の USB Audio Class(UAC)端子タイプを報告する必要があります。
- ヘッドフォン: 低インピーダンス トランスデューサ、100 オーム未満、マイクなし: 0x0302
- ヘッドセット: 低インピーダンス トランスデューサ、マイク付き: 0x0402
コントロール ファンクション
ヘッドセットは、音量調節や再生 / 一時停止などの特定の機能を制御するボタン(その数は場合によって異なる)を装備できます。
コントロール ファンクション |
アクセサリのサポート |
説明 |
A |
必須 |
再生 / 一時停止(短押し)、音声コマンドを起動(長押し)、次に移動(二度押し) |
B |
省略可 |
音量アップ |
C |
省略可 |
音量ダウン |
D |
省略可 |
音声コマンドを起動 |
次のようにファンクションをボタンに割り当てる必要があります。
- ボタンが 1 つのヘッドセットでは、ファンクション A を実装します。
- ボタンが複数あるヘッドセットでは、次のパターンに従ってファンクションを実装します。
- 2 つのファンクション: A と D
- 3 つのファンクション: A、B、C
- 4 つのファンクション: A、B、C、D
注: キーを押した状態で固定することは許されません。エンドユーザーがキーを押すたびに、エンドユーザーの操作に対応する「ダウン」キーイベントと「アップ」キーイベントを生成する必要があります。つまり、ファンクション A~D のキーは、押しても固定されず、トグルされるように実装します(「ダウン」の後でキーを押すと必ず「アップ」になるようにします)。
ソフトウェア マッピング
互換性のある USB ヘッドセットは、ヘッドセット ボタンに対する次のソフトウェア マッピングをサポートする必要があります。デバイスは、この HID マッピングを適切な Android キーコードと照合します。
ファンクション |
マッピング |
A |
HID 使用ページ: 0x0C
HID 使用: 0x0CD |
B |
HID 使用ページ: 0x0C
HID 使用: 0x0E9 |
C |
HID 使用ページ: 0x0C
HID 使用: 0x0EA |
D |
HID 使用ページ: 0x0C
HID 使用: 0x0CF |
キーマッピングは、HID アプリ コレクション内で宣言する必要があります。マイクなしのアクセサリの場合は、ヘッドフォンを使用します(使用ページ: コンシューマー(0x0C)、使用: ヘッドフォン(0x05))。マイク付きのアクセサリの場合は、ヘッドセットを使用します(使用ページ: テレフォニー(0x0B)、使用: ヘッドセット(0x05))。
出力レベル
最大音圧レベルは、出荷先の国の規制要件に従う必要があります。
機械仕様
アクセサリ メーカーは、USB.org によって規定された USB コネクタの要件に従う必要があります。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-27 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-07-27 UTC。"],[],[],null,["# USB headset: Accessory specification\n\nThis documentation specifies some characteristics of USB headsets, so that\nthey function uniformly across the Android ecosystem. Only headsets with\ndigital USB audio interface are permitted. Purely analog headsets with\nmechanical adaptation to USB-C are not permitted, as per USB Type-C\nspecification.\n\n\nThis documentation specifies the minimum requirements: accessory manufacturers\nare encouraged to add features while keeping these requirements in mind.\n\nFunctional overview\n-------------------\n\n\nUSB headsets can implement a variety of basic and advanced features. This\nspecification only covers mandated basic features:\n\n- Stereo output\n- Optional, but recommended, microphone\n- Function buttons for volume, playback, and call control\n\nUSB Audio Class terminal types\n------------------------------\n\n\nHeadphones and headsets must report these USB Audio Class (UAC) terminal types:\n\n- **Headphones**. Low impedance transducers, \\\u003c 100 ohms, no microphone: 0x0302\n- **Headset**. Low impedance transducers with microphone: 0x0402\n\nControl functions\n-----------------\n\nHeadsets can come with varying number of buttons to control specific\nfunctions, such as volume and play/pause.\n\n\n| Control function | Accessory Support | Description |\n|------------------|-------------------|----------------------------------------------------------------------------------|\n| A | Required | Play/pause (short press), launch voice command (long press), next (double press) |\n| B | Optional | Vol+ |\n| C | Optional | Vol- |\n| D | Optional | Launch voice command |\n\n\n**Assign functions to buttons as follows:**\n\n- All one-button headsets must implement Function A.\n- Headsets with multiple buttons must implement functions according to the following pattern:\n - 2 functions: A and D\n - 3 functions: A, B, C\n - 4 functions: A, B, C, D\n\n\n**Note**: No key latching allowed. Each key press by the end user\nmust generate the corresponding \"down\" and \"up\" key event, matching the end user\naction. In other words, the keys for functions A through D are never \"latched\"\nor implemented to be used as a toggle (where the \"up\" event only follows \"down\"\non a second key press).\n\nSoftware mapping\n----------------\n\n\nCompatible USB headsets are required to support the following software mappings\nfor the headset buttons. Devices match these HID mappings with the appropriate\nAndroid keycode.\n\n| Function | Mappings |\n|----------|---------------------------------------|\n| A | HID usage page: 0x0C HID usage: 0x0CD |\n| B | HID usage page: 0x0C HID usage: 0x0E9 |\n| C | HID usage page: 0x0C HID usage: 0x0EA |\n| D | HID usage page: 0x0C HID usage: 0x0CF |\n\nKey mappings should be declared within a HID application\ncollection. For accessories without a microphone, use Headphone (Usage\nPage: Consumer (0x0C), Usage: Headphone (0x05)). For accesories with a\nmicrophone, use Headset (Usage Page: Telephony (0x0B), Usage: Headset (0x05)).\n\nOutput level\n------------\n\n\nThe maximum sound pressure level shall comply to any regulatory requirement in\nthe country of destination.\n\nMechanical\n----------\n\n\nAccessory manufacturers must follow the requirements for USB connectors\nas specified by [USB.org](http://www.usb.org/)."]]