Register now for Android Dev Summit 2019!

ウォッチフェイスの追加機能をウォッチフェイスに追加する

ウォッチフェイスの追加機能は、データ プロバイダからのデータを表示します。Complications API を使うと、ウォッチフェイスで使いたいデータ プロバイダを選び、基となるデータを取得することができます。これにより、データを取得するコードを書くことなく、ウォッチフェイスで日付や時間にとどまらない情報を表示することができます。

Complications API を使うと、ユーザーがデータ プロバイダを選べるようにすることもできます。また、Wear OS by Google では、データソースを選択するユーザー インターフェースも提供されています。

ウォッチフェイスの追加機能

ウォッチフェイスにウォッチフェイスの追加機能を追加するには、以下の手順に従います。

ウォッチフェイスのデフォルト プロバイダの設定

ウォッチフェイスは、デフォルトのプロバイダを指定することができます。ユーザーがプロバイダを選択するまでは、デフォルトのプロバイダが使われます。デフォルトのプロバイダは、WatchFaceService.EnginesetDefaultComplicationProvider() メソッドを使って設定します。このメソッドはいつでも呼び出すことができますが、ユーザーが指定されたウォッチフェイスの追加機能のプロバイダを選択した後に呼び出しても、何も起こりません。

ほとんどのプロバイダでは、ウォッチフェイスに RECEIVE_COMPLICATION_DATA パーミッションを付与する必要があります。その後、ウォッチフェイスにデータが届くようになります。ただし、一部のシステム プロバイダは、ウォッチフェイスが自力で得ることができる情報のみを提供するため、安全だと見なされています。安全なプロバイダは、ウォッチフェイスがパーミッションを取得しなくてもデータを送信できます(システム プロバイダをご覧ください)。これらのプロバイダは、すぐにデータを提供できるので、デフォルトとして使うとよいかもしれません。

それ以外で、ウォッチフェイスに関連付けられているプロバイダをデフォルトとして使いたい場合は、プロバイダがウォッチフェイスを安全なものとして一覧に登録することをリクエストできます。

システム プロバイダ

システムには、デフォルトとして使うことができるプロバイダが含まれています。WatchFaceService.Engine クラスの setDefaultSystemComplicationProvider() メソッドは、ウォッチフェイスの追加機能のデフォルト システム プロバイダを設定します。このメソッドは、システム プロバイダを表す ID(整数)を受け取ります。利用できる ID の一覧は、SystemProviders クラスから取得できます。

次の表に、一部のサポートされているシステム プロバイダの詳細を示します。

SystemProviders クラスのメソッド名 安全 デフォルトとして設定可能か
dateProvider() はい はい 標準のシステム日付プロバイダです。タップすると、標準の Agenda アプリが開きます。
currentTimeProvider() はい はい 標準のシステム「時間および日付」のプロバイダです。タップしても何も起きません。
batteryProvider() はい はい 標準のシステム電池プロバイダです。タップしても何も起きません。
stepCountProvider() はい はい readDailyTotal で報告されるその日の合計歩数を表示します。
unreadCountProvider() はい はい ストリームの未読通知の数を表示します。
worldClockProvider() はい はい デフォルトはロンドンまたはニューヨークです。タップすると、タイムゾーンを変更できます。
appsProvider() はい はい 先頭にある「アプリ」アイコンを表示します。タップすると、アプリを選択できます。
nextEventProvider() いいえ はい(ただし、安全なプロバイダではありません) 標準のシステムの「次のイベント」プロバイダです。タップすると、標準の Agenda アプリが開きます。

ユーザーがデータ プロバイダを選択できるようにする

Wear OS は、ユーザーが特定のウォッチフェイスの追加機能のプロバイダを選択できるユーザー インターフェースを(Activity 経由で)提供します。ウォッチフェイスは、createProviderChooserHelperIntent メソッドを呼び出して、選択用のインターフェースを表示するインテントを取得できます。

ウォッチフェイスが createProviderChooserHelperIntent を呼び出すと、ウォッチフェイスはウォッチフェイスの追加機能の ID と、サポートされているタイプの一覧を提供します。タイプは、希望する順番に並べる必要があります。通常は、範囲値などの多くの情報を提供できるタイプを上位にします。

ユーザーがデータ プロバイダを選択すると、設定は自動的に保存されます。ウォッチフェイスは、他に何もする必要はありません。

ユーザー インターフェースを設定するための、完全な機能を搭載した推奨コードについては、ウォッチフェイス サンプルアプリをご覧ください。

このコードには、以下が含まれています。

  • ウォッチフェイスの追加機能を設定する標準インターフェース
  • 他の設定への簡単なアクセス

コードを確認する場合は、まず AnalogComplicationConfigActivity クラスから始めるとよいでしょう。このクラスには、UI で使用できる設定エントリのリストを返す getDataToPopulateAdapter() メソッドが含まれています。

プロバイダ選択画面の起動

ウォッチフェイスは、ウォッチフェイスの追加機能データを受信し、プロバイダ選択画面を開くために、次のパーミッションを得ている必要があります。

com.google.android.wearable.permission.RECEIVE_COMPLICATION_DATA

このパーミッションを付与されていないウォッチフェイスは、プロバイダ選択画面を開くことはできません。

簡単にパーミッションをリクエストして選択画面を開くことができるように、ウェアラブル端末サポート ライブラリの ComplicationHelperActivity クラスが提供されています。このクラスを ProviderChooserIntent クラスの代わりに使うと、ほぼすべてのケースで選択画面を起動できます。

必要なパーミッションのリクエスト

ComplicationHelperActivity を使うには、マニフェスト ファイルでこのアクティビティをウォッチフェイスに追加します。

<activity android:name="android.support.wearable.complications.ComplicationHelperActivity"/>

プロバイダ選択画面を起動するには、インテントを取得する ComplicationHelperActivity.createProviderChooserHelperIntent メソッドを呼び出します。

startActivity または startActivityForResult で新しいインテントを指定すると、選択画面を起動できます。

次に、startActivityForResult に新しいインテントを指定する例を示します。

Kotlin

startActivityForResult(
        ComplicationHelperActivity.createProviderChooserHelperIntent(
                activity,
                watchFace,
                complicationId,
                ComplicationData.TYPE_LARGE_IMAGE
        ),
        PROVIDER_CHOOSER_REQUEST_CODE
)

Java

startActivityForResult(
  ComplicationHelperActivity.createProviderChooserHelperIntent(
     getActivity(),
     watchFace,
     complicationId,
     ComplicationData.TYPE_LARGE_IMAGE),
  PROVIDER_CHOOSER_REQUEST_CODE);

ヘルパー アクティビティは、開始時にパーミッションが付与されているかどうかを確認します。パーミッションが付与されていない場合は、ヘルパー アクティビティによってランタイム パーミッション リクエストが実行されます。パーミッション リクエストが許可された場合(または不要な場合)、プロバイダ選択画面が表示されます。

startActivityForResult にインテントを渡した場合、呼び出し元の Activity に結果が返されます。プロバイダの設定が成功した場合、結果コードは RESULT_OK になります。プロバイダが設定されなかった場合、結果コードは RESULT_CANCELLED になります。

プロバイダが設定された場合、結果を表すデータ インテントのエクストラに、選択されたプロバイダの ComplicationProviderInfo クラスが含まれます。エクストラのキーは、ProviderChooserIntent#EXTRA_PROVIDER_INFO です。

ウォッチフェイスの追加機能データの受信

ウォッチフェイスの追加機能データの受信を始めるにあたって、ウォッチフェイスは WatchFaceService.Engine クラスの setActiveComplications() を呼び出します。その際に、ウォッチフェイスの追加機能の ID のリストが渡されます。ウォッチフェイスは、ウォッチフェイスの追加機能を表示するスロットを一意に識別するためにこの ID を作成し、どのウォッチフェイスの追加機能をどのスロットに表示するかをユーザーが決められるように、createProviderChooserIntent() メソッドに渡します。ウォッチフェイスの追加機能データは、onComplicationDataUpdate() コールバックを通して送信されます。

通常、ウォッチフェイスがウォッチフェイスの追加機能データを受信するには、上記のパーミッションが必要です。しかし、いくつかの例外もあります。具体的に記述すると、ウォッチフェイスは、以下のいずれかが当てはまるプロバイダからのみ、データを受信することができます。

  • プロバイダが「安全」なシステム プロバイダである場合
  • プロバイダとウォッチフェイスが同じアプリのものである場合
  • ウォッチフェイスがプロバイダのホワイトリストに「安全」なウォッチフェイスとして登録されている場合
  • ウォッチフェイスがパーミッションを取得している場合

上記のいずれも該当しない場合、通常であればプロバイダからウォッチフェイスに ComplicationData が送信されるタイミングで、TYPE_NO_PERMISSION タイプのデータが送信されます。このタイプには、アイコン(感嘆符)と短いテキスト("--")が含まれています。これは、便宜上、ショート テキスト タイプまたはアイコンタイプとしてレンダリングできるようにするためです。

ウォッチフェイスが TYPE_NO_PERMISSION のデータを受信した場合は、ウォッチフェイスの追加機能を動作させるために操作が必要であることがユーザーに伝わるように、このデータを適切にレンダリングする必要があります。可能であれば、この状態のウォッチフェイスの追加機能をタップしたときに、パーミッションのリクエストを行います。ウォッチフェイスのアプリにヘルパー アクティビティが追加されていれば、ComplicationHelperActivity.createPermissionRequestHelperIntent() を使ってこれを行うことができます。

ユーザーがヘルパー アクティビティによるパーミッション リクエストを許可すると、ウォッチフェイス上のすべてのアクティブなウォッチフェイスの追加機能に対して、自動的にアップデートがリクエストされます。これにより、TYPE_NO_PERMISSION データが実際のデータに置き換わります。

ウォッチフェイスの追加機能のレンダリング

ウォッチフェイスは、想定される項目を表示する限り、自由にデータをレンダリングすることができます。必須項目は、必ず含める必要があります。タイプによっては、省略可能項目を含めなければならない場合もあります(下のの注をご覧ください)。

推奨される標準のウォッチフェイスの追加機能として、デザイン ガイドラインが提供されています。しかし、デベロッパーは、独自のスタイルを使うことも、別の方法でデータをウォッチフェイスに表示することもできます。

ウォッチフェイスの追加機能の描画

ComplicationDrawable クラスを使うと、キャンバスにウォッチフェイスの追加機能全体をレンダリングできます。

このクラスは、6 つあるすべての主要なウォッチフェイスの追加機能のタイプをサポートしており、次の処理を実行します。

  • ウォッチフェイスの追加機能のレイアウトとスタイル設定に関連するすべての処理
  • 境界線内の背景、アイコン、テキストなどの描画
  • さまざまなオプションの設定。背景色、角の形と角丸の半径、境界線(有無を含む)、テキストの色、書体など
  • イメージのデコードとキャッシュ

ターゲット API レベル 24 では、XML リソースとして ComplicationDrawable オブジェクトを定義できます。プログラムで ComplicationDrawable オブジェクトを作成することもできます。draw() メソッドを使うと、ウォッチフェイスの追加機能の描画や、インタラクティブ モードおよび常に画面表示モードでのスタイル オプションの設定を行うことができます。

焼き付き防止アイコンおよびイメージが提供されており、端末がそれを必要とする場合、ComplicationDrawable は焼き付き防止アイコンおよびイメージを使います。これを有効にするには、端末プロパティを受信する際に ComplicationDrawable.setBurnInProtection() メソッドを呼び出します。

ウォッチフェイスの追加機能の描画に関する詳しい手順や例については、 ComplicationDrawable をご覧ください。サンプル XML も含まれています。このクラスを使うウォッチフェイスや、サンプル XML を含むウォッチフェイスの例は、Watch Face サンプルアプリAnalogComplicationWatchFaceService サンプルをご覧ください。

ComplicationDrawable オブジェクトを使わない場合は、ウォッチフェイスの追加機能のテキスト用の TextRenderer を使います。

テキストのレンダリング

TextRenderer は、ウォッチフェイスの追加機能で簡単にキャンバスにテキストを描画するためのクラスです。このクラスには、以下の機能が含まれています。

  • 7 文字(ショート テキスト項目の最大長)がリクエストされたテキストのサイズの境界内に収まらない場合、収まるまでテキストを縮小します。
  • 指定された行数のテキストを流し込むことができます。
  • 境界内に収まらない場合、テキストは省略されます。
  • レンダリングは、常に画面表示モード用に調整されます。

ウォッチフェイス エンジンを初期化する際に、TextRenderer オブジェクトを作成して、TextRenderer オブジェクトで使う必要がある TextPaint オブジェクトを渡すことができます。TextPaint オブジェクトは、フォント、テキストのサイズ、色などを定義します。TextRenderer オブジェクトは、項目ごとに作成する必要があります。たとえば、テキスト項目用に 1 つ、タイトル項目用に 1 つ作成します。

レンダリングするテキストの境界の指定など、サンプルコードについては、 TextRenderer をご覧ください。

ウォッチフェイスの追加機能のタップ

ComplicationDrawable.onTap() メソッドを使うと、ウォッチフェイスからウォッチフェイスの追加機能にタップイベントを渡すことができます。このメソッドは、ウォッチフェイスをタップすると WatchFaceService.Engine.onTapCommand() メソッドを呼び出すという機能がベースになっています。

onTap を呼び出すと、ComplicationDrawable に座標を渡すことができます。これによって、タップ座標を含む ComplicationDrawable に関連付けられた操作が呼び出されます。このメソッドを呼び出し、ComplicationDrawable によって関連付けられた操作が起動された場合、戻り値 true が返されます。

setHighlightDuration() メソッドを使うと、onTap メソッドが呼ばれてから、ウォッチフェイスの追加機能がハイライト状態を継続する時間を設定できます。

ウォッチフェイスの追加機能で ComplicationDrawable を使っていない場合は、独自にタップを検出し、タップ操作の PendingIntent を発生させる必要があります。ユーザーのタップに反応するウォッチフェイスの作成方法については、インタラクティブなウォッチフェイスの作成をご覧ください。

ウォッチフェイスの追加機能のタイプ

ウォッチフェイスの追加機能のタイプは、ウォッチフェイスの追加機能に表示されるデータの種類を決めるものです。たとえば、重要なデータが短い文字列である場合は、SHORT_TEXT タイプを利用できます。SHORT_TEXT タイプの例では、省略可能なデータはアイコンと短いタイトルです。

データ プロバイダは、ウォッチフェイスのプロバイダとは違う形でウォッチフェイスの追加機能のタイプを使います。

  • データ プロバイダは、提供するウォッチフェイスの追加機能データの種類を選択します。たとえば、歩数プロバイダは、RANGED_VALUE タイプと SHORT_TEXT タイプをサポートし、「次の打ち合わせ」プロバイダは、SHORT_TEXT タイプと LONG_TEXT タイプをサポートすることが考えられます。データ プロバイダは、これらのタイプのどの省略可能項目を含めるかも選択します。
  • ウォッチフェイスのプロバイダは、サポートするウォッチフェイスの追加機能のタイプの数を選択します。たとえば、ウォッチフェイス上にある円形のウォッチフェイスの追加機能は、SHORT_TEXTICONRANGED_VALUE の各タイプをサポートし、ウォッチフェイス上のゲージは、RANGED_VALUE タイプしかサポートしないことが考えられます。

ComplicationData オブジェクトには、常に 1 つのウォッチフェイスの追加機能のタイプが指定されます。ウォッチフェイスの追加機能の各タイプには、必須項目と省略可能項目があります。一般的に、必須項目はデータの主な部分を表します。ほとんどのタイプは、必須項目から名前が付けられています。

1 つのタイプに複数の項目が含まれている場合があります。たとえば、SHORT_TEXT は、テキストのみ、タイトルとテキスト、アイコンとテキストのいずれかです。あるタイプをサポートするウォッチフェイスの追加機能は、想定されるすべての種類のデータを表示できる必要があります。ただし、一部の省略可能項目は、表示しなくてもよい場合があります(下の表のの列をご覧ください)。たとえば、RANGED_VALUE タイプの短いタイトル項目は、必須ではありません。そのため、ゲージなどは、テキストなしで表示することもできます。

ウォッチフェイスの追加機能のタイプの例

次に、ウォッチフェイスの追加機能のタイプの例を示します。

ウォッチフェイスの追加機能のタイプ

タイプと項目

次の表では、ComplicationData オブジェクトのタイプと項目について説明しています。ウォッチフェイスが、対象のウォッチフェイスの追加機能のタイプで無効な項目をリクエストすると、その項目に対するデフォルト値が返されます。たとえば、ウォッチフェイスから SHORT_TEXT タイプの Long text 項目にアクセスしようとした場合、Long text 項目のデフォルト値(null)が返されます。

タイプ 必須項目 省略可能項目
SHORT_TEXT 短いテキスト アイコン
焼き付き防止アイコン
短いタイトル
アイコンと短いタイトルのどちらかまたは両方が提供された場合、厳密にどちらかのみが表示されます。
ICON アイコン 焼き付き防止アイコン テキストが不要な場合に使います。単色のアイコンが想定されています。ウォッチフェイスによって着色される場合があります。
RANGED_VALUE
最小値
最大値
アイコン
焼き付き防止アイコン
短いテキスト
短いタイトル
省略可能項目は表示されるとは限りません。独自の進行状況バーを描画したい場合は、setRangedValueProgressHidden() メソッドを使って ComplicationDrawable クラスが提供する進行状況バーを隠すことができます。
LONG_TEXT 長いテキスト 長いタイトル
アイコン
焼き付き防止アイコン
小さいイメージ
提供された場合、タイトルが表示されます。
SMALL_IMAGE 小さいイメージ 小さいイメージは、写真形式アイコン形式のどちらかの形式をとります。写真形式の場合、スペースを埋めるように拡大され、切り取られる場合があります。アイコン形式の場合、切り取られることはなく、パディングされる場合があります。イメージは可変なので、焼き付き防止が搭載された端末や低ビットの常に画面表示モードが搭載された端末では、常に画面表示モードでの表示に適さないイメージが表示される可能性があります。焼き付き防止や低ビットの常に画面表示モードが有効になっている場合、ウォッチフェイスは安全な Burn-in protection small image を使う場合があります。そうでない場合は、イメージが適切かどうかをウォッチフェイスが判断するのは難しいので、イメージを表示するべきではありません。
LARGE_IMAGE 大きいイメージ このイメージは、ウォッチフェイス全体を覆う大きさである必要があります。イメージは可変なので、焼き付き防止が搭載された端末や低ビットの常に画面表示モードが搭載された端末では、常に画面表示モードでの表示に適さないイメージが表示される可能性があります。焼き付き防止または低ビットの常に画面表示モードが有効になっている場合、イメージが表示に適切かどうかを判断するのは難しいので、ウォッチフェイスは常に画面表示モードでイメージを表示するべきではありません。

下の表のタイプは空のデータのもので、どのウォッチフェイスの追加機能スロットにも送信される可能性があります。これらのタイプには項目はなく、サポートされているタイプの一覧に含める必要はありません。ウォッチフェイスは、これらのタイプから、次の 3 つのケースを判別することができます。

  • プロバイダが選択されていない場合
  • ユーザーがスロットに「空」を選択している場合
  • プロバイダに送信するデータがない場合

プロバイダは、アップデート リクエストに対して TYPE_EMPTY を送信してはいけません。代わりに、TYPE_NO_DATA を送信する必要があります。

「空」のデータに対するウォッチフェイスの追加機能のタイプの詳細は、次の表に記載されています。

ウォッチフェイスの追加機能のタイプ 説明
TYPE_NOT_CONFIGURED ウォッチフェイスの追加機能がアクティベートされているにもかかわらず、ユーザーがプロバイダを選択しておらず、デフォルトも設定されていない場合に、システムから送信されます。

プロバイダが送信することはできません。

TYPE_EMPTY ウォッチフェイスの追加機能がアクティベートされており、ユーザーがプロバイダでなく「空」を選択している場合か、ウォッチフェイスがプロバイダを選択しておらず、デフォルトとしてこのタイプが設定されている場合に、システムから送信されます。

プロバイダが送信することはできません。

TYPE_NO_DATA ウォッチフェイスの追加機能(プロバイダが存在)がアクティベートされている場合に、ウォッチフェイスの追加機能がプロバイダから実データを受け取る前であることを明示するために、システムから送信されます。

送信する実データがない場合、プロバイダはこれを送信する必要があります。

ウォッチフェイスの追加機能データ用の項目の使用

ComplicationData オブジェクトの項目には、さまざまな機能があります。たとえば、テキスト項目には重要なデータが含まれますが、タイトル項目には説明が含まれます。歩数計のウォッチフェイスの追加機能では、「2,543」という値のテキスト項目と、「歩」という値のタイトル項目があるかもしれません。

次の表には、ComplicationData オブジェクトの項目の説明が記載されています。ウォッチフェイスの追加機能のタイプによって、項目にデータが設定されている場合も、されていない場合もあります。

項目 説明
短いテキスト 小さなウォッチフェイスの追加機能用の主要なテキスト項目です。この項目の最大長は、7 文字を超えてはいけません(時間に依存する任意のテキストを含みます)。ウォッチフェイスは、任意の 7 文字の文字列をレンダリングできる必要があります。文字列の幅は、使われる文字によって異なります。ウォッチフェイスは、文字列がウォッチフェイスの追加機能に収まるようにテキストサイズを調整する必要があります。テキストが 7 文字を超えた場合、切り捨てられる可能性があります。
アイコン データまたはデータソースを表す単色のイメージです。着色可能である必要があります。この項目には、ベクター ドローアブルが推奨されています。
焼き付き防止アイコン 焼き付き防止を使用している端末で、常に画面表示モードに表示されるアイコンを有効にする項目です。焼き付き防止を使用している端末のウォッチフェイスでは、常に画面表示モードでピクセルの塗りつぶしブロックを表示してはいけません。Burn-in protection icon 項目は、icon 項目を含むすべてのウォッチフェイスの追加機能のタイプで省略可能です。Burn-in protection icon 項目には、ピクセルの塗りつぶしブロックを含めてはいけません。標準アイコンが焼き付き防止に適さない場合、プロバイダは Burn-in protection icon 項目を提供する必要があります。焼き付き防止が有効になっている端末で常に画面表示モードでレンダリングするウォッチフェイスは、Burn-in protection icon 項目が利用できる場合、icon 項目の代わりにこの項目を使用する必要があります。
焼き付き防止の小さいイメージ 焼き付き防止を使用している端末で、常に画面表示モードに表示されるイメージを有効にする項目です。焼き付き防止を使用している端末のウォッチフェイスでは、常に画面表示モードでピクセルの塗りつぶしブロックを表示してはいけません。Burn-in protection small image 項目は、small image 項目を含むすべてのウォッチフェイスの追加機能のタイプで省略可能です。Burn-in protection small image 項目には、ピクセルの塗りつぶしブロックを含めてはいけません。標準の小さいイメージが焼き付き防止に適さない場合、プロバイダは Burn-in protection small image 項目を提供する必要があります。焼き付き防止が有効になっている端末で常に画面表示モードでレンダリングするウォッチフェイスは、Burn-in protection small image 項目が利用できる場合、small image 項目の代わりにこの項目を使用する必要があります。
短いタイトル 小さなウォッチフェイスの追加機能用の説明項目です。Short text 項目と組み合わせた場合にのみ、意味があるものになる可能性があります。この項目の最大長は、7 文字を超えてはいけません(時間に依存する任意のテキストを含みます)。ウォッチフェイスは、任意の 7 文字の文字列をレンダリングできる必要があります。文字列の幅は、使われる文字によって異なります。ウォッチフェイスは、文字列がウォッチフェイスの追加機能に収まるようにテキストサイズを調整する必要があります。テキストが 7 文字を超えた場合、切り捨てられる可能性があります。
長いテキスト 長いテキストのウォッチフェイスの追加機能用の主要なデータ項目です。
長いタイトル 長いテキストのウォッチフェイスの追加機能用の説明項目です。長いテキスト項目と組み合わせた場合にのみ、意味があるものになる可能性があります。
数値(浮動小数点数)で表されたデータです。最小値最大値の項目の範囲に対し、相対的に描画されます(ただし、この境界に収まらなければならないわけではありません)。
最小値 が描画される範囲の下限値です。および最大値と組み合わせた場合にのみ、意味があるものになります。
最大値 が描画される範囲の上限値です。および最小値と組み合わせた場合にのみ、意味があるものになります。
小さいイメージ データまたはデータソースを表す小さいイメージです。フルカラーに対応しています。ウォッチフェイス全体を覆うことは想定されていません。
大きいイメージ ウォッチフェイスを覆えるだけの解像度を持ったイメージです。フルカラーに対応しています。

ウォッチフェイスの追加機能のタイプのテスト

ウォッチフェイスの追加機能の各タイプには、テキストやアイコンなどの項目があります。ウォッチフェイスが、あるタイプのウォッチフェイスの追加機能をサポートする場合、すべての有効な項目の組み合わせをサポートする必要があります。

ウォッチフェイスにウォッチフェイスの追加機能データを表示する方法をテストすることができます。具体的には、ウォッチフェイスの追加機能のタイプの表示をテストスイートを使ってテストします。これにより、ComplicationData オブジェクトの有効な項目の組み合わせをテストするコードを書く必要はなくなります。

このテストスイートは、サンプルとして使えるデータ プロバイダで、指定されたウォッチフェイスの追加機能のタイプについて、有効な項目の組み合わせを繰り返します。

このテストスイートを利用するには、以下の手順に従います。

  1. 端末またはエミュレータに、テストスイート APK をインストールします。
  2. ウォッチフェイスにアクセスし、メイン設定のアイコンをタップします。
  3. 設定 UI を使ってテストスイート WearComplication-ProviderTestSuite を選択します。
  4. テストするウォッチフェイスの追加機能のデータタイプを選択します。
  5. ウォッチフェイスの追加機能をタップして、データタイプの変化を確認します。
  6. 再度ウォッチフェイスの追加機能をタップして、すべての関連項目の組み合わせが正しく表示されることを確認します。

たとえば、ウォッチフェイスの追加機能が短いテキストをサポートする場合は、ウォッチフェイスの追加機能をタップして、短いテキストの項目のすべての主要な組み合わせについて確認します。