デバイス情報
プロバイダは、 メッセージ ストリームを介してデバイス情報をシーカーに通知できます。
| メッセージ グループ名 | 値 |
|---|---|
| デバイス情報イベント | 0x03 |
| デバイス情報コード名 | 値 |
|---|---|
| モデル ID | 0x01 |
| BLE アドレスを更新しました | 0x02 |
| バッテリーを更新しました | 0x03 |
| バッテリーの残り時間 | 0x04 |
| アクティブなコンポーネントのリクエスト | 0x05 |
| アクティブなコンポーネントのレスポンス | 0x06 |
| (非推奨)機能 | 0x07 |
| プラットフォーム タイプ | 0x08 |
| ファームウェアのバージョン | 0x09 |
| 現在の FHN エフェメラル ID | 0x0B |
モデル ID
メッセージ ストリームが接続されたら、モデル ID 情報(
AccountKey の事後書き込み用)を
シーカーに送信する必要があります。たとえば、0x03010003AABBCC は次のようになります。
- 0x03: デバイス情報イベント
- 0x01: モデル ID 値
- 0x0003: 追加データ、長さ 3
- 0xAABBCC: 追加データ、モデル ID
BLE アドレス
BLE アドレス情報(
AccountKey の事後書き込み用)も、
利用可能な場合は、メッセージ ストリームが接続されたときと
アドレスがローテーションされるたびにシーカーに送信する必要があります。たとえば、0x03020006AABBCCDDEEFF は次のようになります。
- 0x03: デバイス情報イベント
- 0x02: BLE アドレス値
- 0x0006: 追加データ、長さ 6
- 0xAABBCCDDEEFF: 追加データ、BLE アドレス
バッテリーを更新しました
バッテリー通知をサポートするプロバイダの場合、バッテリー情報もメッセージ ストリームを介して送信できます。メッセージ ストリームが接続されたとき、またはバッテリーの値が変更されたときに、更新を送信する必要があります。パケットの追加
データ セクションには、BLE 経由でバッテリーデータをアドバタイズするときに、バイト
s + 2、s + 3、s + 4 と同じデータを含める必要があります。たとえば、0x0303000357417F は次のようになります。
- 0x03: デバイス情報イベント
- 0x03: バッテリーの値
- 0x0003: 追加データ、長さ 3
- 0x57417F: 追加データ、バッテリーの値
- 0x57: 左側のイヤフォン値、充電なし、バッテリー残量 87%
- 0x41: 右側のイヤフォン値、充電なし、バッテリー残量 65%
- 0x7F: ケースの値、充電なし、バッテリー不明
プロバイダは、バッテリーの残り時間(既知の場合)を更新することもできます。たとえば、0x03040001F0 は次のようになります。
- 0x03: デバイス情報イベント
- 0x04: バッテリーの残り時間
- 0x0001: 追加データ、長さ 1(必要に応じて uint16 の場合は 2)
- 0xF0: 追加データ、バッテリーの残り時間(分単位)、240 分
アクティブなコンポーネント
シーカーは、現在アクティブなコンポーネントを知りたい場合があります。 つまり、それらのコンポーネントに対してアクションを実行できます(デバイス アクションを参照)。 プロバイダが アクティブなコンポーネントのリクエスト コード(0x05)を含むリクエストを受信した場合、プロバイダの現在の状態を示すレスポンスを 1 秒以内に返す必要があります。レスポンスでは、 アクティブなコンポーネントのレスポンス コード(0x06)が使用され、使用可能なコンポーネントを示す追加データが含まれます。
コンポーネントが 1 つのプロバイダの場合、使用できない場合は追加データを 0x00 に設定する必要があります。たとえば、メディアの再生が行われない低電力モードなどです。それ以外の場合は、追加データを 0x01 に設定する必要があります。
複数のコンポーネント(左側と右側のイヤフォンなど)があるヘッドセットの場合、追加データの各ビットは、そのコンポーネントがアクティブかどうかを表します。非アクティブなコンポーネントの例としては、ケースに入っていて使用されていないイヤフォンがあります。特に左側と右側のイヤフォンの場合:
- 0x00(0b00000000): どちらのイヤフォンもアクティブではない
- 0x01(0b00000001): 右側のイヤフォンがアクティブ、左側が非アクティブ
- 0x02(0b00000010): 左側のイヤフォンがアクティブ、右側が非アクティブ
- 0x03(0b00000011): 両方のイヤフォンがアクティブ
プラットフォーム タイプ
プロバイダは、接続先のプラットフォームに応じて異なる動作を行う場合があります。現時点では、ファスト ペアリング は Android でのみ実行されますが、今後サポートが拡大される可能性があります。
メッセージの追加データには、プラットフォーム タイプを識別する最初のバイトが含まれます。
| プラットフォーム名 | 値 |
|---|---|
| Android | 0x01 |
2 バイト目はプラットフォームごとにカスタマイズされます。Android では、 SDK バージョンを参照します。たとえば、Android Pie の値は 28(0x1C)になります。
ファームウェアのバージョン
プロバイダのファームウェア バージョンを utf-8 エンコードの文字列として表します。 ファームウェア リビジョン特性の情報と同じです。
現在の FHN エフェメラル ID
FHN フレームをアドバタイズするプロバイダは、クロック ドリフト(バッテリー切れなど)が発生した場合にシーカーと同期できるように、現在の FHN エフェメラル ID(EID)を現在のクロック値とともに報告する必要があります。
次に例を示します。
- 0x03: デバイス情報イベント
- 0x0B: 現在の FHN エフェメラル ID メッセージ
- 0x0018: 追加データ、長さ 24 バイトまたは 36 バイト
- 0x13F9EA80: 追加データ(クロック値、4 バイト)
- 0x1122334455667788990011223344556677889900: 追加データ(現在の EID、20 バイトまたは 32 バイト)