פיתוח שירות של תצוגת שעון

תצוגת שעון היא שירות ארוזה באפליקציה של Wear OS. כשמשתמש בוחר תצוגת שעון זמינה, תצוגת השעון מוצגת שיטות קריאה חוזרת (callback) של שירות מופעלות.

כשמשתמש מתקין אפליקציית Wear שכוללת תצוגות שעון, השעון התצוגות זמינות בשעון באמצעות הבורר של תצוגת השעון. לחלופין, המשתמש יכול לבחור תצוגת שעון מאפליקציה נלווית בטלפון המותאם.

בדף הזה מוסבר איך להגדיר פרויקט Wear OS כך שיכלול תצוגות שעון, ואיך כדי להטמיע שירות לתצוגת שעון.

יצירת פרויקט של תצוגת שעון

הערה: מומלץ להשתמש ב-Android Studio לצורכי פיתוח ל-Wear OS, בתור הוא מספק הגדרת פרויקט, הכללה בספרייה ונוחות אריזה.

כך עושים את זה: ליצור פרויקט ב-Android Studio לתצוגת השעון:

  1. לוחצים על קובץ > חדש > פרויקט חדש.
  2. בחלון Select a project template (בחירת תבנית פרויקט), בוחרים בכרטיסייה Wear ובוחרים תצוגת השעון ברשימת האפשרויות ולוחצים על הבא.
  3. בחלון Configure your project, מאשרים ערכי ברירת המחדל ולוחצים על סיום.

מערכת Android Studio יוצרת פרויקט עם מודול app לשירות תצוגת השעון.

יחסי תלות

מערכת Android Studio מוסיפה באופן אוטומטי את יחסי התלות הנדרשים בbuild.gradle . יחסי התלות כוללים AndroidX ספריית תצוגות השעון; לראות את לקבלת פרטים על הספרייה הזו ב-GitHub.

חומר עזר של ספריית תמיכה לגאדג'טים לבישים

מאמרי העזרה כוללים מידע מפורט על הכיתות שבהן אתם משתמשים להטמיע תצוגות שעון. עיון ב הפניית API מסמכי תיעוד לספריית התמיכה במכשירים לבישים.

הצהרת ההרשאות

לתצוגת שעון נדרשת ההרשאה 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. תצוגת השעון צריכה לאחסן מידע ב אחסון מוצפן במכשיר.

הטמעת השירות ושיטות הקריאה החוזרת (callback)

תצוגות השעון ב-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 by Google ובכלי לבחירת תצוגת השעון במכשיר הלביש תמונה שהוגדרה על ידי רשומת המטא-נתונים com.google.android.wearable.watchface.preview_circular כאשר הצגת כל תצוגות השעון המותקנות במכשיר. כדי לקבל את הפריט הזה שניתן להזזה, להריץ את תצוגת השעון במכשיר Wear OS או במופע אמולטור לצלם את המסך. ב-Wear במכשירים עם מסכי HD, תמונת התצוגה המקדימה היא בדרך כלל בגודל 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" />

האפליקציה הלבישת יכולה להכיל יותר מתצוגת שעון אחת. עליך להוסיף ערך לשירות קובץ מניפסט של האפליקציה הלבישת לכל אחת מההטמעות של תצוגת השעון שלך.

כדאי לעיין במקורות המידע שקשורים לנושא: