ساخت سرویس صفحه ساعت

صفحه ساعت سرویسی است که در یک برنامه Wear OS بسته بندی شده است. وقتی کاربر یک صفحه ساعت موجود را انتخاب می‌کند، صفحه ساعت نمایش داده می‌شود و روش‌های پاسخ به تماس سرویس فراخوانی می‌شوند.

وقتی کاربر یک برنامه Wear را نصب می‌کند که دارای صفحه‌های ساعت است، صفحه‌های ساعت با استفاده از انتخابگر صفحه ساعت روی ساعت در دسترس هستند. همچنین، کاربر می تواند یک صفحه ساعت را از یک برنامه همراه در تلفن جفت شده انتخاب کند.

این صفحه نحوه پیکربندی یک پروژه Wear OS را برای گنجاندن چهره‌های ساعت و نحوه پیاده‌سازی سرویس واچ فیس توضیح می‌دهد.

یک پروژه واچ فیس ایجاد کنید

توجه: توصیه می‌کنیم از Android Studio برای توسعه سیستم‌عامل Wear OS استفاده کنید، زیرا راه‌اندازی پروژه، گنجاندن کتابخانه، و سهولت‌های بسته‌بندی را فراهم می‌کند.

مراحل زیر را برای ایجاد یک پروژه در Android Studio برای صفحه ساعت خود انجام دهید:

  1. روی فایل > جدید > پروژه جدید کلیک کنید.
  2. در پنجره Select a project template ، تب Wear را انتخاب کنید، سپس Watch Face را از لیست گزینه ها انتخاب کنید و روی Next کلیک کنید.
  3. در پنجره Configure your project ، مقادیر پیش فرض را بپذیرید و روی Finish کلیک کنید.

Android Studio یک پروژه با یک ماژول app برای سرویس صفحه ساعت شما ایجاد می کند.

وابستگی ها

Android Studio به طور خودکار وابستگی های مورد نیاز را در فایل های build.gradle شما اضافه می کند. در وابستگی ها کتابخانه چهره ساعت AndroidX گنجانده شده است. برای جزئیات بیشتر در مورد این کتابخانه به نمونه کد در GitHub مراجعه کنید.

مرجع API کتابخانه پشتیبانی پوشیدنی

مستندات مرجع اطلاعات دقیقی در مورد کلاس هایی که برای پیاده سازی واچ فیس استفاده می کنید ارائه می دهد. اسناد مرجع API را برای کتابخانه پشتیبانی Wearable مرور کنید.

مجوزها را اعلام کنید

صفحه ساعت به مجوز WAKE_LOCK نیاز دارد. مجوز زیر را به فایل‌های مانیفست برنامه Wear OS و برنامه تلفن همراه در زیر عنصر manifest اضافه کنید:

<manifest ...>
    <uses-permission
        android:name="android.permission.WAKE_LOCK" />

    <!-- Required for complications to receive complication data and open the provider chooser. -->
    <uses-permission
        android:name="com.google.android.wearable.permission.RECEIVE_COMPLICATION_DATA"/>
    ...
</manifest>

پشتیبانی از مستقیم بوت

شما باید قبل از باز کردن قفل توسط کاربر، با دنبال کردن دستورالعمل‌های Direct Boot ، صفحه ساعت خود را در دسترس قرار دهید:

  1. ویژگی android:directBootAware را برای سرویس خود در مانیفست خود روی true تنظیم کنید.
  2. صفحه ساعت شما باید اطلاعات را در حافظه رمزگذاری شده دستگاه ذخیره کند.

روش های سرویس و برگشت تماس را پیاده سازی کنید

واچ فیس ها در Wear OS به عنوان WatchFaceService پیاده سازی می شوند. پیاده‌سازی WatchFaceService به ایجاد سه شی نیاز دارد: UserStyleSchema ، ComplicationSlotsManager و WatchFace .

این سه شی با نادیده گرفتن سه روش انتزاعی از WatchFaceService مشخص می شوند که در مثال زیر نشان داده شده است:

کاتلین

class CustomWatchFaceService : WatchFaceService() {

    /**
     * The specification of settings the watch face supports.
     * This is similar to a database schema.
     */
    override fun createUserStyleSchema(): UserStyleSchema = // ...

    /**
     * The complication slot configuration for the watchface.
     */
    override fun createComplicationSlotsManager(
        currentUserStyleRepository: CurrentUserStyleRepository
    ): ComplicationSlotsManager = // ...

    /**
     * The watch face itself, which includes the renderer for drawing.
     */
    override suspend fun createWatchFace(
        surfaceHolder: SurfaceHolder,
        watchState: WatchState,
        complicationSlotsManager: ComplicationSlotsManager,
        currentUserStyleRepository: CurrentUserStyleRepository
    ): WatchFace = // ...

}

ثبت سرویس چهره ساعت

پس از پیاده سازی سرویس واچ فیس، پیاده سازی را در فایل مانیفست اپلیکیشن پوشیدنی ثبت کنید. وقتی کاربران این برنامه را نصب می‌کنند، سیستم از اطلاعات مربوط به سرویس استفاده می‌کند تا صفحه ساعت را در برنامه همراه Wear OS و در انتخابگر چهره ساعت در دستگاه پوشیدنی در دسترس قرار دهد.

نمونه زیر نشان می دهد که چگونه می توان پیاده سازی واچ فیس را در عنصر <application> ثبت کرد:

<service
    android:name=".AnalogWatchFaceService"
    android:label="@string/analog_name"
    android:permission="android.permission.BIND_WALLPAPER" >
    <meta-data
        android:name="android.service.wallpaper"
        android:resource="@xml/watch_face" />
    <meta-data
        android:name="com.google.android.wearable.watchface.preview_circular"
        android:resource="@drawable/preview_analog_circular" />
    <intent-filter>
        <action android:name="android.service.wallpaper.WallpaperService" />
        <category
            android:name=
            "com.google.android.wearable.watchface.category.WATCH_FACE" />
    </intent-filter>
</service>

برنامه همراه Wear OS by Google و انتخابگر چهره ساعت در دستگاه پوشیدنی از تصویر پیش‌نمایش تعریف‌شده توسط مدخل فوق‌داده com.google.android.wearable.watchface.preview_circular هنگام ارائه کاربران با تمام صفحه‌های ساعت نصب شده در دستگاه استفاده می‌کنند. برای به دست آوردن این قابل ترسیم، صفحه ساعت را در دستگاه Wear OS خود یا در یک نمونه شبیه ساز اجرا کنید و یک اسکرین شات بگیرید . در دستگاه‌های Wear با صفحه‌نمایش hdpi، اندازه تصویر پیش‌نمایش معمولاً 320x320 پیکسل است.

ورودی فراداده android.service.wallpaper فایل منبع watch_face.xml را مشخص می کند که حاوی یک عنصر wallpaper است، همانطور که در نمونه زیر نشان داده شده است:

<?xml version="1.0" encoding="UTF-8"?>
<wallpaper xmlns:android="http://schemas.android.com/apk/res/android" />

برنامه پوشیدنی شما می تواند بیش از یک صفحه ساعت داشته باشد. برای هر یک از پیاده‌سازی‌های صورت ساعت خود باید یک ورودی سرویس به فایل مانیفست برنامه پوشیدنی اضافه کنید.

به منابع مرتبط زیر مراجعه کنید: