デバイス情報
プロバイダは、メッセージ ストリームを介してシーカーにデバイス情報を通知できます。
メッセージ グループ名 | 値 |
---|---|
デバイス情報イベント | 0x03 |
デバイス情報のコード名 | 値 |
---|---|
モデル ID | 0x01 |
BLE アドレスが更新されました | 0x02 |
バッテリーを更新しました | 0x03 |
残りのバッテリー時間 | 0x04 |
アクティブ コンポーネントのリクエスト | 0x05 |
アクティブ コンポーネントの応答 | 0x06 |
(非推奨)機能 | 0x07 |
プラットフォーム タイプ | 0x08 |
ファームウェア バージョン | 0x09 |
現在の FMDN エフェメラル ID | 0x0B |
モデル ID
RFCOMM 接続時にモデル ID 情報(Retroactively Writing AccountKey 用)をシーカーに送信する必要があります。たとえば、0x03010003AABBCC
は次のようになります。
- 0x03: デバイス情報イベント
- 0x01: モデル ID の値
- 0x0003: 追加データ、長さ 3
- 0xAABBCC: 追加データ、モデル ID
BLE アドレス
BLE アドレス情報(Retroactively Writing AccountKey 用)がある場合は、RFCOMM が接続したときとアドレスがローテーションされるたびに、Seeker にも送信する必要があります。たとえば、0x03020006AABBCCDDEEFF
は次のようになります。
- 0x03: デバイス情報イベント
- 0x02: BLE アドレス値
- 0x0006: 追加データ、長さ 6
- 0xAABBCCDDEEFF: 追加データ、BLE アドレス
バッテリーを更新しました
バッテリー通知をサポートするプロバイダは、RFCOMM を介してバッテリー情報を送信することもできます。RFCOMM が接続されたとき、またはバッテリーの値が変更されたときに、更新情報を送信する必要があります。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)を使用し、どのコンポーネントが使用可能かを示す追加データを含みます。
単一コンポーネントを持つプロバイダの場合、追加データが利用できない場合は、0x00 に設定する必要があります。たとえば、メディアの再生が行われない低電力モードなどがこれに該当します。それ以外の場合は、追加データを 0x01 に設定する必要があります。
複数のコンポーネント(左右のイヤホンなど)を備えたヘッドセットの場合、追加データの各ビットはそのコンポーネントがアクティブかどうかを表します。非アクティブなコンポーネントの例としては、ケースに入っていて使用されていないイヤフォンなどがあります。左右のイヤホンケース:
- 0x00(0b00000000): どちらのイヤフォンもアクティブではない
- 0x01(0b00000001): 右のイヤフォンは有効、左は無効
- 0x02(0b00000010): 左のイヤフォンは有効、右のイヤフォンは無効
- 0x03(0b00000011): 両方のイヤフォンがアクティブ
プラットフォーム タイプ
プロバイダは、接続先のプラットフォームに応じて異なるパフォーマンスを必要とする場合があります。現在、ファスト ペアリングは Android でのみ提供されていますが、今後サポートが拡大される可能性があります。
このメッセージの追加データには、プラットフォーム タイプを識別する最初のバイトが含まれます。
プラットフォーム名 | 値 |
---|---|
Android | 0x01 |
2 番目のバイトはプラットフォームごとにカスタマイズされます。Android では、SDK のバージョンは SDK バージョンと呼ばれます。たとえば、Android Pie の場合、値は 28(0x1C)になります。
ファームウェア バージョン
プロバイダのファームウェア バージョン(utf-8 エンコードの文字列)。これは、[ファームウェアのリビジョンの特性] と同じ情報です。
現在の FMDN エフェメラル ID
FMDN フレームをアドバタイズするプロバイダは、現在の FMDN エフェメラル識別子(EID)を現在のクロック値で報告し、クロックのずれ(バッテリーの消耗など)が発生した場合にシーカーと同期する必要があります。
次に例を示します。
- 0x03: デバイス情報イベント
- 0x0B: 現在の FMDN エフェメラル ID メッセージ
- 0x0018: 追加データ、長さ 24 または 36 バイト
- 0x13F9EA80: 追加データ(クロック値、4 バイト)
- 0x1122334455667788990011223344556677889900: 追加データ(現在の EID、20 または 32 バイト)