バージョン 2 以降、Watch Face Format には天気データのサポートが含まれています。このデータは、現在の天気情報から 1 時間ごとや 1 日ごとの予報まで、さまざまな指標と期間を対象としています。
天気情報には式を使用してアクセスします。たとえば、<Text> 要素に現在の天気予報を表示するには、次のような式を使用します。
<PartText x="100" y="100" width="200" height="50"> <Text> <Font family="SYNC_TO_DEVICE" size="16"> <Template><![CDATA[Today's weather: %s]]> <Parameter expression="[WEATHER.CONDITION_NAME]"/> </Template> </Font> </Text> </PartText>
対象
[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 になることもあります。これは、データが最新ではなく、データの更新を試みたが失敗した場合です。このような場合は、利用可能な天気予報とともに、新しいデータの取得でエラーが発生したことを示すインジケーターが表示されます。
データの鮮度
利用可能なデータのタイムスタンプには、[WEATHER.LAST_UPDATED](ミリ秒単位の Unix エポック タイムスタンプ)を使用してアクセスできます。
この値は、天気サンプルに示すように、icuText(,) メソッドを使用して人間が読める形式に変換できます。
悪天候
現在の条件は [WEATHER.CONDITION] で確認できます。人間が読める形式の条件は [WEATHER.CONDITION_NAME] で確認できます。
[WEATHER.CONDITION] の値は、データソースで確認できます。たとえば、4 は HEAVY_RAIN を表します。
その他の指標
Watch Face Format は、[WEATHER.TEMPERATURE] や [WEATHER.UV_INDEX] など、さまざまな追加指標を提供します。単位やデータ型など、使用可能な指標の詳細については、データソースのリファレンス ページをご覧ください。
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 サンプルをご覧ください。
あなたへのおすすめ
- 注: JavaScript がオフになっている場合はリンクテキストが表示されます
- フォーカスの動作を変更する
- Compose における副作用
- AGSL クイック リファレンス