Membuat layanan tampilan jam

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

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 OS 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

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, pilih Watch Face dari daftar opsi, lalu 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 entri yang diperlukan dalam file build.gradle Anda.

Library tampilan jam AndroidX saat ini telah tersedia. Lihat contoh kode di GitHub untuk mencobanya.

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.

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

Mendeklarasikan izin

Tampilan jam memerlukan izin WAKE_LOCK. Tambahkan izin berikut ke file manifes aplikasi Wear OS (aplikasi wearable) dan aplikasi seluler (ponsel) 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 perangkat persegi panjang

Secara default, tampilan jam pada perangkat persegi panjang dijalankan dalam mode emulasi persegi guna mendukung tampilan jam yang dibuat untuk perangkat berbentuk lingkaran dan persegi. Jika Anda ingin sepenuhnya mendukung perangkat persegi panjang, ganti perilaku ini dengan membuat tag meta-data di tampilan jam service dari manifest lalu menyetel android.service.wallpaper.square_mode ke false seperti yang ditunjukkan dalam contoh kode berikut:

<manifest ...>
    <application ...>
        <service
            android:name=".MyWatchFace"
            android:label="My Watch Face"
            android:permission="android.permission.BIND_WALLPAPER">

            ...

            <meta-data
                android:name="android.service.wallpaper.square_mode"
                android:value="false" />
            ...
        </service>
    ...
    </application>
    ...
</manifest>

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 3 metode abstrak dari 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 = // ...

}

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"
        android:resource="@drawable/preview_analog" />
    <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 entri metadata ketika menyajikan semua tampilan jam yang terinstal di perangkat kepada pengguna. Untuk mendapatkan gambar pratinjau 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.

Tampilan jam yang terlihat cukup berbeda pada perangkat berlayar bundar dapat menampilkan gambar pratinjau bundar dan juga persegi. Untuk menentukan gambar pratinjau bundar, gunakan entri metadata com.google.android.wearable.watchface.preview_circular. Jika tampilan jam menyertakan kedua jenis gambar pratinjau, aplikasi pendamping dan pemilih tampilan jam pada perangkat wearable akan menampilkan gambar yang sesuai, bergantung pada bentuk smartwatch-nya. Jika gambar pratinjau bundar tidak disertakan, gambar pratinjau persegi akan digunakan untuk perangkat berbentuk persegi dan bundar. Untuk perangkat layar bundar, gambar pratinjau persegi akan dipangkas menggunakan bentuk lingkaran.

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: