デバイス情報

プロバイダは、メッセージ ストリームを介してデバイス情報についてシーカーに通知できます。

メッセージ グループ名
デバイス情報イベント 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 + 2s + 3s + 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 バイト)