Posted at

Android Wear Watch Face 設定アクティビティの提供

More than 3 years have passed since last update.

この内容は、Providing Configuration Activitiesの日本語訳です。Watch Faceを設定するためのUIを提供するための方法が書かれています。


設定アクティビティの提供

ユーザがWatch Faceを持つウェアラブルアプリを含んだハンドヘルドアプリをインストールした際に、そのWatch Faceはコンパニオンデバイス上のAndroid Wearコンパニオンアプリ内、およびウェアラブル上のWatch Faceピッカー内で利用可能になります。コンパニオンアプリ上あるいはウェアラブルデバイスのWatch Faceピッカーを利用してWatch Faceを選択することで、ユーザはウェアラブルデバイスのためのアクティブWatch Faceを選ぶことが可能です。

いくつかのWatch Faceは、Watch Faceの見た目や振る舞いをユーザにカスタマイズさせるために、パラメータの設定をサポートします。例えば、あるWatch Faceでは、カスタム背景色の選択をユーザにさせるでしょう。また、2つの異なるタイムゾーンで時間を表示するWatch Faceは、ユーザが興味のあるタイムゾーンを選択させるでしょう。

パラメータの設定をサポートするWatch Faceは、ウェアラブルアプリ内のアクティビティ、ハンドヘルドアプリ上のアクティビティ、またはその両方を使って、Watch Faceをユーザにカスタマイズさせることができます。ユーザはウェアラブルデバイス上のウェアラブル設定アクティビティを開始することができ、そしてAndroid Wearコンパニオンアプリからコンパニオン設定アクティビティも開始可能です。

WatchFaceのサンプルであるDigital Watch Faceは、どのようにハンドヘルド/ウェアラブル設定アクティビティの実装方法、および設定の変更の結果としてWatch Faceを更新するための方法を示します。


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

もしあなたのWatch Faceが設定アクティビティを含む場合、以下のメタデータエントリをウェアラブルアプリのマニフェストファイル内にあるサービス定義に追加してください。

<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>

これらのエントリのために、あなたのアプリのパッケージ名によって開始される値を提供します。設定アクティビティはこのインテントのためのインテントフィルターを登録し、ユーザがあなたのWatch Faceを設定しようとした際に、システムはこのインテントを発行します。

もしあなたのWatch Faceが、コンパニオンまたはウェアラブル設定アクティビティのみを含む場合、あなたは上記の例から、対応するメタデータのみを含む必要があります。


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

ウェアラブル設定アクティビティは、Watch Faceを設定するための限られた選択肢のセットを提供します。なぜなら、複雑なメニューは小さな画面上で操作することが困難だからです。あなたのウェアラブル設定アクティビティは、あなたのWatch Faceの中心的な外観をカスタマイズするために、2値あるいは数個の選択肢を提供すべきです。

ウェアラブル設定アクティビティを作成するために、あなたのウェアラブルアプリモジュールに新しいアクティビティを追加し、ウェアラブルアプリのマニフェストファイル内に以下のインテントフィルタを定義してください。

<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>

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

あなたの設定アクティビティにおいて、あなたのWatch Faceをカスタマイズするための選択をユーザに提供するシンプルなUIを構築してください。ユーザが選択した際には、Watch Faceアクティビティに設定変更を伝えるために、Wearable Data Layer APIを使ってください。

詳しくは、WatchFaceサンプル内のDigitalWatchFaceWearableConfigActivityおよびDigitalWatchFaceUtilクラスを参照してください。


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

コンパニオン設定アクティビティは、Watch Faceを設定するための全ての選択肢のセットへのアクセスをユーザに提供します。なぜなら、ハンドヘルドデバイスの大きな画面上では、複雑なメニューを使った操作が簡単だからです。例えば、ハンドヘルドデバイス上の設定アクティビティでは、Watch Faceの背景色を選択するための凝ったカラーピッカーをユーザに見せることが可能になります。

コンパニオン設定アクティビティを作成するために、あなたのハンドヘルドアプリモジュールに新しいアクティビティを追加し、ハンドヘルドアプリのマニフェストファイル内に以下のインテントフィルタを定義してください。

<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>

あなたの設定アクティビティにおいて、あなたのWatch Faceの全ての変更可能な要素をカスタマイズするための選択をユーザに提供するUIを構築してください。ユーザが選択した際には、Watch Faceアクティビティに設定変更を伝えるために、Wearable Data Layer APIを使ってください。

詳しくは、WatchFaceサンプル内のDigitalWatchFaceCompanionConfigActivityクラスを参照してください。


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

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

詳しくは、WatchFaceサンプル内のDigitalWatchFaceConfigListenerServiceおよびDigitalWatchFaceServiceクラスを参照してください。