สร้างบริการหน้าปัด

หน้าปัดคือบริการ เป็นแพ็กเกจในแอป Wear OS เมื่อผู้ใช้เลือกหน้าปัดที่ใช้ได้ หน้าปัดจะปรากฏขึ้น และ มีการเรียกใช้ Method Callback ของบริการ

เมื่อผู้ใช้ติดตั้งแอป Wear ที่มีหน้าปัด นาฬิกา ใบหน้าต่างๆ พร้อมใช้งานบนนาฬิกาโดยใช้ตัวเลือกหน้าปัด หรือผู้ใช้สามารถเลือกหน้าปัดจากแอปที่ใช้ร่วมกันในโทรศัพท์ที่จับคู่ไว้ก็ได้

หน้านี้อธิบายวิธีกำหนดค่าโปรเจ็กต์ Wear OS ให้รวมหน้าปัดและวิธี เพื่อใช้บริการหน้าปัด

สร้างโปรเจ็กต์หน้าปัด

หมายเหตุ: เราขอแนะนำให้ใช้ Android Studio สำหรับการพัฒนา Wear OS เนื่องจาก ช่วยในการจัดทำโครงการ รวมห้องสมุด และอำนวยความสะดวกในการบรรจุหีบห่อ

ทำตามขั้นตอนต่อไปนี้เพื่อ สร้างโปรเจ็กต์ ใน Android Studio สำหรับหน้าปัดของคุณ

  1. คลิกไฟล์ > ใหม่ > โปรเจ็กต์ใหม่
  2. ในหน้าต่างเลือกเทมเพลตโปรเจ็กต์ ให้เลือก ในแท็บ Wear แล้วเลือก Watch Face จากรายการตัวเลือกและคลิก Next
  3. ในหน้าต่างกำหนดค่าโปรเจ็กต์ ให้ยอมรับ ค่าเริ่มต้นแล้วคลิก Finish

Android Studio สร้างโปรเจ็กต์ที่มีโมดูล app สำหรับบริการหน้าปัดของคุณ

การขึ้นต่อกัน

Android Studio จะเพิ่มทรัพยากร Dependency ที่จำเป็นใน build.gradle โดยอัตโนมัติ สิ่งที่รวมอยู่ในทรัพยากร Dependency คือ AndroidX คลังหน้าปัด โปรดดู ตัวอย่างโค้ดใน GitHub เพื่อดูรายละเอียดเกี่ยวกับไลบรารีนี้

เอกสารอ้างอิง API ไลบรารีการสนับสนุนอุปกรณ์ที่สวมใส่ได้

เอกสารประกอบอ้างอิงจะให้ข้อมูลโดยละเอียดเกี่ยวกับชั้นเรียนที่คุณใช้เพื่อ โดยใช้หน้าปัด เรียกดู เอกสารอ้างอิง API เอกสารประกอบสำหรับไลบรารีการสนับสนุนของอุปกรณ์ที่สวมใส่ได้

ประกาศสิทธิ์

หน้าปัดต้องได้รับสิทธิ์ WAKE_LOCK เพิ่มสิทธิ์ต่อไปนี้ลงในไฟล์ Manifest ของทั้งแอป 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 สำหรับบริการใน ไฟล์ Manifest
  2. หน้าปัดของคุณควรจัดเก็บข้อมูลเป็นภาษา พื้นที่เก็บข้อมูลที่เข้ารหัสของอุปกรณ์

นำบริการและวิธีการติดต่อกลับ

หน้าปัดใน Wear OS มีการใช้งานเป็น WatchFaceService การใช้ WatchFaceService จำเป็นต้องมีการสร้างออบเจ็กต์ 3 รายการ ได้แก่ UserStyleSchema, ComplicationSlotsManager และ WatchFace

วัตถุทั้ง 3 ชิ้นนี้ระบุโดยการลบล้างเมธอดนามธรรม 3 แบบจาก 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 = // ...

}

ลงทะเบียนบริการหน้าปัด

หลังจากใช้บริการหน้าปัดแล้ว ให้ลงทะเบียนการใช้งานในไฟล์ Manifest ของแอปอุปกรณ์ที่สวมใส่ได้ เมื่อผู้ใช้ติดตั้งแอปนี้ ระบบจะใช้ข้อมูลเกี่ยวกับ บริการเพื่อทำให้หน้าปัดพร้อมใช้งานใน แอปที่ใช้ร่วมกันกับ 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" />

แอปสำหรับอุปกรณ์สวมใส่อาจมีหน้าปัดมากกว่า 1 แบบ คุณต้องเพิ่มรายการบริการลงใน ไฟล์ Manifest ของแอปอุปกรณ์ที่สวมใส่ได้สำหรับการใช้งานหน้าปัดแต่ละรายการ

โปรดดูแหล่งข้อมูลที่เกี่ยวข้องต่อไปนี้