デバイスを操作する
Seeker は Provider にアクションの実行をリクエストできます。アクションがプロバイダでサポートされている場合は、確認して実行する必要があります。それ以外の場合は無視する必要があります。
メッセージ グループ名 | 値 |
---|---|
デバイスの操作イベント | 0x04 |
デバイス アクションのコード名 | 値 |
---|---|
着信音 | 0x01 |
デバイスの着信音を鳴らす
これらのアクションのユースケースの 1 つは、ユーザーがデバイスを紛失して見つける必要がある場合などに、シーカーがプロバイダに呼び出しをリクエストすることです。着信アクションを受信すると、プロバイダは、ユーザーが音を特定できる程度の音量で、プリロードされた音声ファイルの再生を開始する必要があります。音量を徐々に上げて最大音量に達するようにすることをおすすめします。着信音は、停止を指示する追加のアクションを受信するか、タイムアウト値が経過するまで継続する必要があります。
着信音を開始または停止するかどうかを示す追加データがメッセージに含まれます。このデータは、複数のコンポーネント(左と右のイヤホン)を持つプロバイダをサポートするように拡張できます。最初のバイトでは、着信音の開始をリクエストする場合はビットが 1 に設定され、着信音の停止をリクエストする場合は 0 に設定されます。
たとえば、追加データの最初のバイトが次のように設定されている場合:
- 0x00(0b00000000): すべてのコンポーネントの着信音が停止する
- 0x01(0b00000001): 右を鳴らし、左の着信を停止
- 0x02(0b00000010): 左を鳴らし、右の着信音を停止
- 0x03(0b00000011): 左右両方のリング
個別の着信音をサポートしていないプロバイダでは、1 ビットのみが考慮されます。
- 0x00(0b00000000): 着信音を停止
- 0x01(0b00000001): 着信音を鳴らし始める
追加データがある場合、追加データの 2 バイト目はタイムアウトを秒単位で表します。この値は、プロバイダが着信音を鳴らす時間を決定するために使用します。上記の ring right の例と 60 秒のタイムアウトに基づくと、0x013C
が追加データとして渡されます。
着信ステータスをシーカーに同期する
プロバイダは、着信音の状態が変更されたときに、シーカーに通知することが望ましい場合があります。たとえば、ジェスチャーによって着信音が停止した場合などです。その後、Seeker はメッセージを受信し、必要に応じて UI を更新できます。
プロバイダは、上記の例で定義されているメッセージ形式に沿う必要があります。Seeker はこのメッセージをリッスンし、受信すると確認応答を提供します。
アクションの確認
アクションを受け取ったら、アクションが実行されたかどうかをシーカーが把握できるように、確認応答する必要があります。アクションの送信から 1 秒以内に確認応答が受信されない場合(または否定確認応答が受信された場合)、Seeker はアクションが現在サポートされていないと見なします。