Watch Face Format の気象データ

バージョン 2 以降、Watch Face Format は気象データをサポートしています。このデータは、現在の状況から 1 時間ごと、1 日ごとの予測まで、さまざまな指標と時間枠をカバーしています。

Weather にはを使用してアクセスします。たとえば、<Text> 要素で現在の天気情報を表示するには、次のような式を使用します。

<Text>
  <Font family="SYNC_TO_DEVICE" size="32">
    <Template>Today's weather: %s
        <Parameter expression="[WEATHER.CONDITION_NAME]"/>
    </Template>
  </Font>
</Text>

対象

ウォッチフェイスは、[WEATHER.*] オブジェクトの他のメンバーにアクセスする前に、必ず [WEATHER.IS_AVAILABLE] 値を確認する必要があります。

<Condition>
  <Expressions>
    <Expression name="is_weather_available">[WEATHER.IS_AVAILABLE]</Expression>
  </Expressions>
  <Compare expression="is_weather_available">
    <!-- Weather is available, so show the weather data. -->
  </Compare>
  <Default>
    <!-- Weather isn't available, so show an appropriate message. -->
  </Default>
</Condition>

また、ウォッチフェイスは [WEATHER.IS_ERROR] をチェックします。これは、気象データの読み込み中にエラーが発生したことを示します。

[WEATHER.IS_AVAILABLE][WEATHER.IS_ERROR] の両方を true にできます。この場合、データが古く、データの更新に失敗した場合です。このような場合は、利用可能な天気情報とともに、新しいデータの取得中にエラーが発生したことを示すインジケーターを表示できます。

データの更新頻度

使用可能なデータのタイムスタンプには、ミリ秒単位の Unix エポック タイムスタンプである [WEATHER.LAST_UPDATED] を使用してアクセスできます。

天気情報のサンプルに示すように、この値は icuText(,) メソッドを使用して書式設定し、人が読める形式で表現できます。

悪天候

現在の条件は [WEATHER.CONDITION] で確認できます。人間が読めるバージョンは [WEATHER.CONDITION_NAME] で確認できます。

[WEATHER.CONDITION] の値はデータソースで確認できます。たとえば、4HEAVY_RAIN を表します。

その他の指標

Watch Face Format には、[WEATHER.TEMPERATURE][WEATHER.UV_INDEX] などのさまざまな追加指標が用意されています。単位やデータ型など、使用可能な指標の詳細については、データソースのリファレンス ページをご覧ください。

1 時間ごと、1 日ごとの天気予報

将来の特定の時間または日付の予測条件には、次のようにアクセスできます。

  • [WEATHER.HOURS.1.CONDITION] - 今から 1 時間後の予測条件。
  • [WEATHER.DAYS.2.CONDITION] - 2 日後の予測条件。

時間別データは 8 時間先まで、日次データは 5 日前まで利用できます。ただし、ウォッチフェイスでは、予測データが利用可能かどうかを常に確認する必要があります。利用できる時間や曜日は、時間帯やデバイスによって異なる場合があります。たとえば、今から 1 時間後まで予測データが利用可能かどうかを確認するには、[WEATHER.HOURS.1.IS_AVAILABLE] を使用します。

日単位と時間単位の予測では、[WEATHER.HOURS.<N>.TEMPERATURE][WEATHER.DAYS.<N>.CHANCE_OF_PRECIPITATION] などのさまざまな指標も利用できます。単位やデータ型など、使用可能な指標の詳細については、データソースのリファレンス ページをご覧ください。

気象データでのテスト

気象データを取得するには、Wear OS デバイスがデバイスの位置情報を認識している必要があります。

電力を節約するため、スマートウォッチは、内蔵の GPS センサーを使用して天気予報の位置情報を特定するのではなく、接続されているハンドヘルド デバイスまたは利用可能なネットワークからの位置情報に依存しています。

位置情報をテストに利用できるようにするには、次のいずれかを行います。

  • 物理スマートフォンまたはエミュレータ スマートフォンと Wear OS エミュレータをペア設定します。
  • 次の adb コマンドを使用して位置情報をシミュレートします。
adb unroot
adb shell cmd location set-location-enabled true
adb root
adb shell appops set 0 android:mock_location allow
adb shell cmd location providers add-test-provider gps
adb shell cmd location providers set-test-provider-enabled gps true
adb shell cmd location providers set-test-provider-location gps --location 37.773972,-122.431297

詳細

気象データへのアクセスとレンダリングの詳細な例については、GitHub サンプルをご覧ください。