داده‌های آب‌وهوا در «قالب صفحه ساعت»

از نسخه ۲، «قالب صفحه ساعت» از داده‌های آب‌وهوا پشتیبانی می‌کند. این داده‌ها طیف وسیعی از سنجه‌ها و بازه‌های زمانی را پوشش می‌دهد، از شرایط کنونی تا پیش‌بینی‌های ساعتی و روزانه.

آب‌وهوا بااستفاده از عبارات دردسترس قرار می‌گیرد. برای مثال، برای نمایش شرایط آب‌وهوایی فعلی در عنصر <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] هر دو می‌توانند درست باشند، یعنی داده‌ها قدیمی باشند و تلاش برای بازآوری داده‌ها ناموفق باشد. در چنین مواردی، آب‌وهوای دردسترس می‌تواند به‌همراه نشانگری که نشان می‌دهد در واکشی داده‌های جدید خطایی رخ داده است نمایش داده شود.

تازگی داده‌ها

مُهر زمان داده‌های دردسترس را می‌توان بااستفاده از [WEATHER.LAST_UPDATED] که مُهر زمان تاریخ یونیکس برحسب میلی‌ثانیه است، دردسترس قرار داد.

این مقدار را می‌توان بااستفاده از روش icuText(,) قالب‌بندی کرد تا نمایش قابل‌خواندن برای انسان به‌دست آید، همان‌طور که در نمونه آب‌وهوا نشان داده شده است.

شرایط آب‌وهوا

شرایط فعلی در [WEATHER.CONDITION] دردسترس است، با نسخه انسان‌خوان در [WEATHER.CONDITION_NAME].

مقادیر [WEATHER.CONDITION] را می‌توانید در منابع داده ببینید. برای مثال، 4 نشان‌دهنده HEAVY_RAIN است.

سنجه‌های دیگر

«قالب صفحه ساعت» طیف وسیعی از سنجه‌های اضافی، مثل [WEATHER.TEMPERATURE] و [WEATHER.UV_INDEX] را ارائه می‌دهد. برای جزئیات کامل سنجه‌های دردسترس، ازجمله واحدها و انواع داده، به صفحه مرجع منابع داده مراجعه کنید.

پیش‌بینی‌های ساعتی و روزانه

می‌توانید به شرایط پیش‌بینی‌شده برای ساعت یا روز خاصی در آینده به‌صورت زیر دسترسی پیدا کنید:

  • ‫[WEATHER.HOURS.1.CONDITION] - شرایط پیش‌بینی‌شده ۱ ساعت دیگر.
  • ‫[WEATHER.DAYS.2.CONDITION] - شرایط پیش‌بینی‌شده برای ۲ روز دیگر.

داده‌های ساعتی می‌تواند تا ۸ ساعت قبل و داده‌های روزانه تا ۵ روز قبل دردسترس باشد. بااین‌حال، صفحه ساعت باید همیشه دردسترس بودن داده‌های پیش‌بینی را بررسی کند. ممکن است در زمان‌های مختلف یا در دستگاه‌های مختلف، محدوده متفاوتی از ساعت‌ها یا روزها دردسترس باشد. برای مثال، برای بررسی اینکه آیا داده‌های پیش‌بینی برای ۱ ساعت از اکنون دردسترس است یا نه، از [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 مراجعه کنید.