デバイス情報

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

メッセージ グループ名
デバイス情報イベント 0x03
デバイス情報のコード名
モデル ID 0x01
BLE アドレスを更新しました 0x02
バッテリーを更新しました 0x03
残りのバッテリー時間 0x04
アクティブ コンポーネントのリクエスト 0x05
アクティブ コンポーネントのレスポンス 0x06
(非推奨)機能 0x07
プラットフォーム タイプ 0x08

モデル ID

RFCOMM が接続したときに、モデル ID 情報(遡及的に AccountKey を書き込む用)をシーカーに送信する必要があります。たとえば、0x03010003AABBCC は次のようになります。

  • 0x03: デバイス情報イベント
  • 0x01: モデル ID の値
  • 0x0003: 追加データ、長さ 3
  • 0xAABBCC: 追加データ、モデル ID

BLE アドレス

BLE アドレス情報(Retroactively write 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)を使用し、どのコンポーネントが使用可能かを示す追加データを含みます。

単一のコンポーネントを持つプロバイダで、追加データが利用できない場合は、0x00 に設定する必要があります。たとえば、メディア再生が行われない低電力モードなどです。それ以外の場合、追加データは 0x01 に設定する必要があります。

複数のコンポーネント(左右のイヤフォンなど)を備えたヘッドセットの場合、追加データの各ビットはそのコンポーネントがアクティブかどうかを表します。非アクティブなコンポーネントの例として、ケースに入っていて使用されていないイヤフォンが挙げられます。左右のイヤフォンケースの詳細:

  • 0x00(0b00000000): どちらのイヤフォンもアクティブではありません
  • 0x01(0b00000001): 右のイヤフォンはアクティブ、左は非アクティブ
  • 0x02(0b00000010): 左のイヤフォンはアクティブ、右は非アクティブ
  • 0x03(0b00000011): 両方のイヤフォンがアクティブ

プラットフォーム タイプ

プロバイダは、接続しているプラットフォームに応じて異なるパフォーマンスを必要とする場合があります。現在、ファスト ペアリングは Android でのみ実施されていますが、今後サポートが拡張される可能性があります。

追加データには、プラットフォーム タイプを識別する最初のバイトが含まれます。

プラットフォーム名
Android 0x01

2 番目のバイトはプラットフォームごとにカスタマイズされます。Android では、SDK バージョンを指します。たとえば、Android Pie の場合、値は 28(0x1C)になります。