Membuat layanan tampilan jam

Tampilan jam adalah layanan yang dikemas dalam aplikasi Wear OS. Saat pengguna memilih tampilan jam yang tersedia, tampilan jam tersebut ditampilkan dan metode callback layanan dipanggil.

Setelah pengguna menginstal aplikasi Wear yang memiliki tampilan jam, tampilan jam tersebut dapat diakses di smartwatch melalui pemilih tampilan jam. Atau, pengguna dapat memilih tampilan jam dari aplikasi pendamping di ponsel yang tersambung.

Halaman ini menjelaskan cara mengonfigurasi project Wear OS agar menyertakan tampilan jam dan cara mengimplementasikan layanan tampilan jam.

Membuat project tampilan jam

Catatan: Sebaiknya gunakan Android Studio untuk pengembangan Wear OS karena program tersebut menyediakan penyiapan project, penyertaan library, dan kemudahan pengemasan.

Selesaikan langkah-langkah berikut untuk membuat project di Android Studio untuk tampilan jam:

  1. Klik File > New > New project.
  2. Di jendela Select a project template, pilih tab Wear, lalu pilih Watch Face dari daftar opsi dan klik Next.
  3. Di jendela Configure your project, terima nilai default, lalu klik Finish.

Android Studio membuat project dengan modul app untuk layanan tampilan jam Anda.

Dependensi

Android Studio otomatis akan menambahkan dependensi yang diperlukan dalam file build.gradle Anda. Termasuk dalam dependensi ini adalah library tampilan jam AndroidX; lihat contoh kode di GitHub untuk mengetahui detail tentang library ini.

Referensi Wearable Support Library API

Dokumentasi referensi memberikan informasi mendetail tentang class yang digunakan untuk mengimplementasikan tampilan jam. Pelajari dokumentasi referensi API untuk Wearable Support Library.

Mendeklarasikan izin

Tampilan jam memerlukan izin WAKE_LOCK. Tambahkan izin berikut ke file manifes aplikasi Wear OS dan aplikasi seluler pada elemen 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>

Mendukung booting langsung

Anda harus menyediakan tampilan jam sebelum membuka kunci pengguna dengan mengikuti panduan Booting Langsung:

  1. Tetapkan atribut android:directBootAware ke true untuk layanan di manifes Anda.
  2. Tampilan jam harus menyimpan informasi di penyimpanan yang dienkripsi perangkat.

Mengimplementasikan metode layanan dan callback

Tampilan jam di Wear OS diimplementasikan sebagai WatchFaceService Untuk menerapkan WatchFaceService, Anda harus membuat tiga objek: UserStyleSchema, ComplicationSlotsManager, dan WatchFace.

Ketiga objek ini ditentukan dengan mengganti tiga metode abstrak dari WatchFaceService, yang ditunjukkan dalam contoh berikut:

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 = // ...

}

Mendaftarkan layanan tampilan jam

Setelah mengimplementasikan layanan tampilan jam, daftarkan implementasi tersebut dalam file manifes aplikasi wearable. Setelah pengguna menginstal aplikasi, sistem akan menggunakan informasi layanan tersebut untuk menyediakan tampilan jam di aplikasi pendamping Wear OS dan di pemilih tampilan jam pada perangkat wearable.

Cuplikan berikut menunjukkan cara mendaftarkan implementasi tampilan jam pada elemen <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>

Aplikasi pendamping Wear OS by Google dan pemilih tampilan jam di perangkat wearable menggunakan gambar pratinjau yang ditetapkan oleh com.google.android.wearable.watchface.preview_circular entri metadata ketika menyajikan semua tampilan jam yang terinstal di perangkat kepada pengguna. Untuk mendapatkan drawable ini, jalankan tampilan jam pada perangkat Wear OS atau instance emulator, lalu ambil screenshot. Pada perangkat Wear dengan layar hdpi, gambar pratinjau biasanya berukuran 320x320 piksel.

Entri metadata android.service.wallpaper menentukan file resource watch_face.xml yang berisi elemen wallpaper, seperti yang ditunjukkan dalam contoh berikut:

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

Aplikasi wearable Anda dapat memuat lebih dari satu tampilan jam. Untuk setiap implementasi tampilan jam, Anda harus menambahkan entri layanan ke file manifes aplikasi wearable.

Lihat referensi terkait berikut ini: