デバイス情報

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

メッセージ グループ名
デバイス情報イベント 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 + 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)を使用し、どのコンポーネントが使用可能かを示す追加データを含みます。

単一コンポーネントを持つプロバイダの場合、追加データが利用できない場合は、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 バイト)