ヒアラブルの操作

ファスト ペアリングのヒアラブル コントロールは、Android の重要なヒアラブル機能へのアクセス制御を改善することを目的としています。これを実現するため、メッセージ ストリーム内に新しいメッセージ グループ Hearable コントロールが追加されました。

メッセージ グループ名 値
ヒアラブルの操作 0x08

アクティブ ノイズ コントロール

アクティブ ノイズ コントロールは、プレミアム ヘッドフォンの重要な機能になりつつあります。シーカー側では、ファスト ペアリングに状態の設定、取得、保存を行う UI とロジックがあり、状態はプロバイダ側に保存されます。イベント ストリームが接続されたときに、プロバイダがセッション ノンスを送信することは必須です。このため、次のメッセージ コードが定義されています。

メッセージ コード名 値 ギフトの送り主 回答者 MAC ACK
ANC の状態を取得する 0x11 Seeker プロバイダ N N
ANC の状態を設定する 0x12 Seeker プロバイダ Y Y
ANC の状態を通知する 0x13 プロバイダ Seeker N N

シーカーがプロバイダに接続したとき、またはプロバイダが「ANC 状態を取得」メッセージを受信したとき、プロバイダは ANC 状態を通知して、シーカーに ANC 機能と保存された状態を知らせることができます。メッセージは次のとおりです。

バイト データ型 説明 値
0 uint8 ヒアラブルの操作 0x08
1 uint8 ANC の状態を通知する 0x13
2 ~ 3 uint16 追加のデータ長 0x04
4 ~ 7 ANC 制御データ varies
ANC 制御データ
バイト データ型 説明 値
0 uint8 バージョン コード (このバージョンでは 0x02)
1 フラグ UI 切り替え
各モードは、フラグビットの値に応じて有効(1)または無効(0)になります。
ビット 0(MSB): 透明
ビット 1: アダプティブ(対象外の場合は 0)
ビット 2: オフ
ビット 3: 予約済み(ビットを 0 に設定)
ビット 4: ANC
varies
2 フラグ 設定可能な切り替え
上記の UI 切り替えビットの一部またはすべてをここで設定して、現在有効になっているものを示すこともできます。
varies
3 フラグ 現在の状態
設定できるビットは 1 つのみで、このバイトの値は 0 以外でなければなりません。
varies

Seeker は、ANC 制御データに応じて切り替え UI を表示します。

例 1: プロバイダが 3 ウェイ ANC をサポートしている場合: 外部音取り込み - オフ - ANC。イヤホンが装着されており、すべてのモードが設定可能で、現在の状態がオフの場合:

バイト データ型 説明 値
0 uint8 バージョン コード 0x02
1 フラグ UI の切り替え 0b10101000
2 フラグ 設定可能な切り替え 0b10101000
3 フラグ 現在の状態 0b00100000

例 2: プロバイダが 3 ウェイ ANC(外部音取り込み - オフ - ANC)をサポートしており、現在ヘッドホンを装着しているのは片方のみ、または両方とも装着していないため、モードを設定できず、現在の状態はオフです。

バイト データ型 説明 値
0 uint8 バージョン コード 0x02
1 フラグ UI の切り替え 0b10101000
2 フラグ 設定可能な切り替え 0b00000000
3 フラグ 現在の状態 0b00100000

ユーザーが切り替えボタンを切り替えると、Seeker は次のように現在の状態を Provider に設定します。

バイト データ型 説明 値
0 uint8 ヒアラブルの操作 0x08
1 uint8 ANC の状態を設定する 0x12
2 ~ 3 uint16 追加のデータ長 varies、0x04 または 0x14
4 uint8 Seeker のバージョン コード 可変、0x01 または 0x02
5 フラグ ANC の設定可能なモード(UI 切り替え) varies
6 フラグ ANC 有効モード(切り替え可能) varies
7 フラグ 新しい ANC モードのインデックス(新しい状態) varies
8 ~ 23 予約済み varies

バイト 4 ~ 7 は、実際には Seeker 側から送信された ANC 制御データです。追加の長さの値が 0x14 に設定されている場合、予約済みのバイト 8 ~ 23 が存在し、これらのバイトを受信すると、プロバイダはそれらを無視する必要があります。追加の長さの値が 0x04 に設定されている場合、予約済みのバイトは存在しません。

プロバイダが「ANC 状態の設定」メッセージを受信した場合、確認応答を行い、接続されているすべてのシーカーに ANC 状態を通知する必要があります。ユーザーがヘッドセットのジェスチャーまたはコンパニオン アプリケーションで設定を変更した場合、プロバイダは接続されているすべてのシーカーにも通知を送信する必要があります。

例 3: プロバイダが 4 ウェイ ANC(外部音取り込み - アダプティブ - オフ - ANC)をサポートし、イヤホンが装着され、すべてのモードが設定可能で、現在の状態がアダプティブの場合:

バイト データ型 説明 値
0 uint8 バージョン コード 0x02
1 フラグ UI の切り替え 0b11101000
2 フラグ 設定可能な切り替え 0b11101000
3 フラグ 現在の状態 0b01000000