Wear OS での設定アクティビティの提供

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

以下の関連リソースもご覧ください。

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

注: Wear 1.x では、ユーザーがウェアラブル アプリを含むハンドヘルド アプリをインストールすると、自動でスマートウォッチにウェアラブル アプリがインストールされます。Wear 2.0 では、ウェアラブル アプリが自動でスマートウォッチにインストールされることはありません。また、Wear 2.0 では、ハンドヘルド アプリは必須ではありません。ハンドヘルド アプリが存在し、それを使いたい場合は、個別にインストールする必要があります。

WatchFace のサンプルのデジタル ウォッチフェイスでは、ハンドヘルドとウェアラブルの設定アクティビティの実装方法や、設定の変更に応答してウォッチフェイスをアップデートする方法が説明されています。

設定アクティビティ用のインテントの指定

ウォッチフェイスに設定アクティビティを含める場合は、ウェアラブル アプリのマニフェスト ファイルで、サービス宣言に次のメタデータ エントリを追加します。

    <service
        android:name=".DigitalWatchFaceService" ... />
        <!-- companion configuration activity -->
        <meta-data
            android:name=
               "com.google.android.wearable.watchface.companionConfigurationAction"
            android:value=
               "com.example.android.wearable.watchface.CONFIG_DIGITAL" />
        <!-- wearable configuration activity -->
        <meta-data
            android:name=
               "com.google.android.wearable.watchface.wearableConfigurationAction"
            android:value=
               "com.example.android.wearable.watchface.CONFIG_DIGITAL" />
        ...
    </service>
    

エントリの値の前には、アプリのパッケージ名を付けます。設定アクティビティは、このインテントのインテント フィルタを登録します。システムは、ユーザーがウォッチフェイスを設定しようとしたときに、このインテントを発行します。

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

ウェアラブルの設定アクティビティの作成

小さな画面では複雑なメニューは操作しづらいため、ウェアラブルの設定アクティビティでは、ウォッチフェイスのカスタマイズに関する選択肢を一部だけ提示します。ウェアラブルの設定アクティビティでは、ウォッチフェイスの主な要素をカスタマイズするための二択または少数の選択肢を提示する必要があります。

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

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

このインテント フィルタのアクション名は、設定アクティビティ用のインテントの指定で定義したインテント名と一致する必要があります。

設定アクティビティでは、ウォッチフェイスのカスタマイズに関する選択肢をユーザーに提示する簡単な UI を構築します。ユーザーが選択を終えた際に、Wearable Data Layer API を使ってウォッチフェイスのアクティビティに設定の変更を伝えます。

詳しくは、WatchFace のサンプルDigitalWatchFaceWearableConfigActivity クラスと DigitalWatchFaceUtil クラスをご覧ください。

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

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

注: 設定アクティビティは、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 を使ってウォッチフェイスのアクティビティに設定の変更を伝えます。

詳しくは、WatchFace のサンプルDigitalWatchFaceCompanionConfigActivity クラスをご覧ください。

ウェアラブル アプリのリスナー サービスの作成

更新された設定パラメータを設定アクティビティから受け取るには、ウェアラブル アプリに Wearable Data Layer APIWearableListenerService インターフェースを実装するサービスを作成します。設定パラメータが変更されたときに、ウォッチフェイスを再描画するようにウォッチフェイスを実装することができます。

詳しくは、WatchFace のサンプルDigitalWatchFaceConfigListenerService クラスと DigitalWatchFaceService クラスをご覧ください。