Wear OS での構成アクティビティの提供

ウォッチフェイスの中には、ユーザーがウォッチフェイスの外観と動作をカスタマイズできるように、構成パラメータをサポートしているものもあります。たとえば、一部のウォッチフェイスでは、ユーザーはカスタムの背景色を選択できます。2 種類のタイムゾーンで時刻を表示するウォッチフェイスでは、ユーザーは好みのタイムゾーンを選択できます。

構成パラメータをサポートするウォッチフェイスでは、ユーザーはアクティビティを使用してウォッチフェイスをカスタマイズできます。ユーザーは、ウェアラブル デバイスでウェアラブル構成アクティビティを起動できます。ハンドヘルド アプリがインストールされている場合は、そのアプリからコンパニオンの構成アクティビティを起動することもできます。また、Wear OS 3 デバイス用のデバイス コンパニオン アプリでも、ウォッチフェイスを構成できます。

注: デバイス コンパニオン アプリの構成は、API レベル 30 以上をターゲットとするデバイスで利用できます。ハンドヘルド アプリの構成は、すべてのデバイスで利用できます。

エディタ セッションを使用する

コンパニオン デバイスがなくてもユーザーがウォッチフェイスをカスタマイズできるように、スマートウォッチで構成をサポートすることを強くおすすめします。

これをサポートするために、ウォッチフェイスで構成 Activity を提示し、ユーザーが EditorSession.createOnWatchEditorSession から返される EditorSession を使用して設定を変更できるようにすることが可能です。ユーザーが変更を加えると、EditorSession.renderWatchFaceToBitmap の呼び出しにより、エディタ Activity でウォッチフェイスのライブ プレビューが表示されます。

構成アクティビティ用のインテントを指定する

ウォッチフェイスに構成アクティビティが含まれていて、デバイス コンパニオン アプリからウォッチフェイスを構成する場合は、ウェアラブル アプリのマニフェスト ファイルのサービス宣言に次のメタデータ エントリを追加します。

<service>
    <meta-data
        android:name="com.google.android.wearable.watchface.wearableConfigurationAction"
        android:value="androidx.wear.watchface.editor.action.WATCH_FACE_EDITOR" />
    <meta-data
        android:name="com.google.android.wearable.watchface.companionBuiltinConfigurationEnabled"
        android:value="true" />
</service>

構成アクティビティは、このインテントのインテント フィルタを登録します。システムは、ユーザーがウォッチフェイスを構成しようとしたときに、このインテントを発行します。

ウォッチフェイスにコンパニオンまたはウェアラブルのどちらかの構成アクティビティのみが含まれている場合は、上記の例の対応するメタデータ エントリのみを含める必要があります。

ウェアラブルの構成アクティビティを作成する

小さい画面では複雑なメニューは操作が困難であるため、ウェアラブルの構成アクティビティでは、ウォッチフェイスのカスタマイズの選択肢として、限定されたセットを提示します。ウォッチフェイスの主な要素のカスタマイズについては、二者択一または少数の選択肢を提示してください。

ウェアラブルの構成アクティビティを作成するには、ウェアラブル アプリのモジュールに新しいアクティビティを追加し、ウェアラブル アプリのマニフェスト ファイルで次のインテント フィルタを宣言します。

<activity
    android:name=".DigitalWatchFaceWearableConfigActivity"
    android:label="@string/digital_config_name">
    <intent-filter>
        <action android:name="androidx.wear.watchface.editor.action.WATCH_FACE_EDITOR" />
        <category android:name=
        "com.google.android.wearable.watchface.category.WEARABLE_CONFIGURATION" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

このインテント フィルタのアクション名は androidx.wear.watchface.editor.action.WATCH_FACE_EDITOR であることが必要です。

構成アクティビティでは、ウォッチフェイスのカスタマイズに関する選択肢をユーザーに提示するシンプルな UI を作成します。

コンパニオンの設定アクティビティの作成

複雑なメニューの操作はハンドヘルド デバイスの大画面の方が簡単なので、コンパニオンの設定アクティビティで、ユーザーがウォッチフェイスのすべての設定オプションを選択できるようにします。たとえば、ハンドヘルド デバイスの設定アクティビティでは、ウォッチフェイスの背景色を選択するための詳細なカラー選択ツールをユーザーに提示できます。

注: 設定アクティビティは、スマートフォン、タブレット、折りたたみ式デバイスなど、Android を搭載したハンドヘルド デバイス用にのみ記述できます。

コンパニオンの設定アクティビティを作成するには、ハンドヘルド アプリのモジュールに新しいアクティビティを追加し、ハンドヘルド アプリのマニフェスト ファイルで次のインテント フィルタを宣言します。

<activity
    android:name=".DigitalWatchFaceCompanionConfigActivity"
    android:label="@string/app_name">
    <intent-filter>
        <action android:name=
            "com.example.android.wearable.watchface.CONFIG_DIGITAL" />
        <category android:name=
        "com.google.android.wearable.watchface.category.COMPANION_CONFIGURATION" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

設定アクティビティでは、ウォッチフェイスのすべての設定可能な要素をカスタマイズするオプションを提示する UI を作成します。ユーザーが選択を終えたら、Wearable Data Layer API を使用して、ウォッチフェイスのアクティビティに設定の変更を伝えます。

以下の関連資料もご覧ください。