デバイス情報
プロバイダは、メッセージ ストリームを介してデバイス情報についてシーカーに通知できます。
メッセージ グループ名 | 値 |
---|---|
デバイス情報イベント | 0x03 |
デバイス情報のコード名 | 値 |
---|---|
モデル ID | 0x01 |
BLE アドレスを更新しました | 0x02 |
バッテリーの更新 | 0x03 |
バッテリー残量 | 0x04 |
アクティブなコンポーネントのリクエスト | 0x05 |
アクティブなコンポーネントのレスポンス | 0x06 |
(非推奨)機能 | 0x07 |
プラットフォーム タイプ | 0x08 |
ファームウェアのバージョン | 0x09 |
現在の FHN エフェメラル ID | 0x0B |
モデル ID
モデル ID 情報(AccountKey の遡及書き込み用)は、RFCOMM 接続時にシーカーに送信する必要があります。たとえば、0x03010003AABBCC
は次のようになります。
- 0x03: デバイス情報イベント
- 0x01: モデル ID 値
- 0x0003: 追加データ、長さ 3
- 0xAABBCC: 追加データ、モデル ID
BLE アドレス
BLE アドレス情報(AccountKey の遡及書き込み用)が利用可能な場合は、RFCOMM の接続時とアドレスがローテーションされるたびに、シーカーにも送信する必要があります。たとえば、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)が使用され、使用可能なコンポーネントを示す追加データが含まれます。
コンポーネントが 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 バイト)