إنشاء خدمة لخلفية شاشة الساعة

خلفية شاشة الساعة هي خدمة يتم تضمينها في تطبيق Wear OS. وعندما يختار المستخدم خلفية شاشة ساعة متاحة، يتم استدعاء خلفية شاشة الساعة وطرق معاودة الاتصال بالخدمة.

عندما يثبّت المستخدم تطبيق Wear OS يتضمن خلفيات لشاشة الساعة، تتوفّر هذه الخلفيات على الساعة باستخدام أداة اختيار خلفية شاشة الساعة. بدلاً من ذلك، يمكن للمستخدم اختيار خلفية شاشة ساعة من تطبيق مصاحب على الهاتف المقترن.

توضّح هذه الصفحة كيفية إعداد مشروع Wear OS لتضمين خلفيات شاشة الساعة وكيفية تنفيذ خدمة خلفية شاشة الساعة.

إنشاء مشروع لخلفية شاشة الساعة

ملاحظة: ننصحك باستخدام استوديو Android لتطوير نظام التشغيل Wear OS، لأنّه يوفّر إمكانية إعداد المشروع وإدراج المكتبة وإمكانية إنشاء حزمة محتوى بسهولة.

أكمِل الخطوات التالية لإنشاء مشروع في "استوديو Android" لخلفية شاشة ساعتك:

  1. انقر على ملف > جديد > مشروع جديد.
  2. في النافذة اختيار نموذج مشروع، اختَر علامة التبويب ارتداء ثم اختَر خلفية شاشة الساعة من قائمة الخيارات وانقر على التالي.
  3. في نافذة ضبط مشروعك، اقبل القيم التلقائية وانقر على إنهاء.

ينشئ "استوديو Android" مشروعًا يحتوي على وحدة app لخدمة خلفية شاشة الساعة.

التبعيات

يضيف "استوديو Android" تلقائيًا التبعيات المطلوبة إلى ملفات build.gradle. تتضمّن الملحقات مكتبة خلفية شاشة الساعة على AndroidX. يمكنك الاطّلاع على نموذج الرمز البرمجي على GitHub للحصول على تفاصيل حول هذه المكتبة.

مرجع واجهة برمجة التطبيقات لمكتبة دعم الأجهزة القابلة للارتداء

توفر الوثائق المرجعية معلومات مفصلة حول الفئات التي تستخدمها لتنفيذ خلفيات شاشة الساعة. تصفح المستندات المرجعية لواجهة برمجة التطبيقات الخاصة بمكتبة دعم الأجهزة القابلة للارتداء.

الإفصاح عن الأذونات

يجب حصول خلفية شاشة الساعة على إذن "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>

دعم التشغيل المباشر

يجب إتاحة خلفية شاشة الساعة قبل فتح قفل المستخدم باتّباع إرشادات التشغيل المباشر:

  1. عليك ضبط السمة android:directBootAware على true لخدمتك في ملف البيان.
  2. يجب أن تخزِّن خلفية شاشة الساعة المعلومات في مساحة تخزين مشفّرة على الجهاز.

تنفيذ الخدمة وطرق معاودة الاتصال

يتم تنفيذ خلفيات شاشة الساعة في Wear OS على هيئة WatchFaceService. يتطلّب تنفيذ السمة WatchFaceService إنشاء ثلاثة عناصر: UserStyleSchema وComplicationSlotsManager وWatchFace.

ويتم تحديد هذه العناصر الثلاثة من خلال إلغاء ثلاث طُرق مجرّدة من WatchFaceService، كما هو موضّح في المثال التالي:

Kotlin

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 من Google" وأداة اختيار خلفية شاشة الساعة على الجهاز القابل للارتداء صورة المعاينة التي تم تحديدها من خلال إدخال البيانات الوصفية com.google.android.wearable.watchface.preview_circular عند عرض كل خلفيات شاشة الساعة للمستخدمين. للحصول على هذه الخلفية القابلة للرسم، يمكنك تشغيل خلفية شاشة الساعة على جهاز Wear OS أو في مثيل محاكي وأخذ لقطة شاشة. على أجهزة Wear المزودة بشاشات hdpi، يكون حجم صورة المعاينة عادةً 320×320 بكسل.

يحدّد إدخال البيانات الوصفية android.service.wallpaper ملف المورد watch_face.xml الذي يحتوي على عنصر wallpaper، كما هو موضّح في النموذج التالي:

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

يمكن أن يحتوي تطبيقك القابل للارتداء على أكثر من خلفية شاشة ساعة واحدة. يجب إضافة إدخال خدمة إلى ملف بيان التطبيق القابل للارتداء لكل عملية من عمليات تنفيذ خلفية شاشة الساعة.

ارجع إلى الموارد التالية ذات الصلة: