Циферблат — это услуга , включенная в приложение Wear OS . Когда пользователь выбирает доступный циферблат, он отображается и вызываются методы обратного вызова службы.
Когда пользователь устанавливает приложение Wear с циферблатами, циферблаты становятся доступными на часах с помощью переключателя циферблатов. Альтернативно, пользователь может выбрать циферблат из сопутствующего приложения на сопряженном телефоне.
На этой странице описано, как настроить проект Wear OS для включения циферблатов и как реализовать службу циферблата.
Создание проекта циферблата
Примечание. Мы рекомендуем использовать Android Studio для разработки Wear OS, поскольку она обеспечивает настройку проекта, включение библиотек и удобство упаковки.
Выполните следующие шаги, чтобы создать проект в Android Studio для циферблата:
- Нажмите Файл > Создать > Новый проект .
- В окне «Выбор шаблона проекта» выберите вкладку «Износ» , затем выберите «Циферблат» из списка параметров и нажмите «Далее» .
- В окне «Настройка проекта» примите значения по умолчанию и нажмите « Готово» .
Android Studio создает проект с модулем app
для службы циферблата.
Зависимости
Android Studio автоматически добавляет необходимые зависимости в ваши файлы build.gradle
. В зависимости включена библиотека циферблатов AndroidX ; дополнительные сведения об этой библиотеке см. в примере кода на GitHub.
Справочник по API библиотеки поддержки носимых устройств
Справочная документация предоставляет подробную информацию о классах, которые вы используете для реализации циферблатов. Просмотрите справочную документацию по 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>
Поддержка прямой загрузки
Перед разблокировкой пользователем необходимо сделать циферблат доступным, следуя инструкциям по прямой загрузке :
- Установите для атрибута
android:directBootAware
значениеtrue
для вашей службы в манифесте. - Ваш циферблат должен хранить информацию в зашифрованном хранилище устройства .
Реализация службы и методов обратного вызова
Циферблаты в Wear OS реализованы как WatchFaceService
. Для реализации WatchFaceService
необходимо создать три объекта: UserStyleSchema
, ComplicationSlotsManager
и WatchFace
.
Эти три объекта определяются путем переопределения трех абстрактных методов из WatchFaceService
, как показано в следующем примере:
Котлин
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 с экранами 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" />
Ваше носимое приложение может содержать более одного циферблата. Вы должны добавить запись службы в файл манифеста носимого приложения для каждой реализации вашего циферблата.
Связанные ресурсы
Обратитесь к следующим соответствующим ресурсам:
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2024-10-26 UTC.