Un cadran est un service préinstallé dans une application Wear OS. Lorsqu'un utilisateur sélectionne un cadran disponible, celui-ci s'affiche et les méthodes de rappel de service sont appelées.
Lorsqu'un utilisateur installe une application Wear qui possède des cadrans, ceux-ci sont disponibles sur la montre à l'aide du sélecteur de cadran. L'utilisateur peut également sélectionner un cadran dans une application associée sur le téléphone jumelé.
Cette page explique comment configurer un projet Wear OS pour inclure des cadrans et implémenter un service de cadran.
Créer un projet de cadran
Remarque : Nous vous recommandons d'utiliser Android Studio pour le développement sur Wear OS, car il fournit des options de configuration de projet, d'inclusion dans la bibliothèque et de packaging.
Procédez comme suit pour créer un projet dans Android Studio pour votre cadran :
- Cliquez sur File > New > New Project (Fichier > Nouveau > Nouveau projet).
- Dans la fenêtre Select a project template (Sélectionner un modèle de projet), cliquez sur l'onglet Wear, puis sélectionnez Watch Face (Cadran) dans la liste des options et cliquez sur Next (Suivant).
- Dans la fenêtre Configure your project (Configurer votre projet), acceptez les valeurs par défaut, puis cliquez sur Finish (Terminer).
Android Studio crée un projet avec un module app
pour votre service de cadran.
Dépendances
Android Studio ajoute automatiquement les dépendances requises dans vos fichiers build.gradle
. La bibliothèque de cadrans AndroidX est incluse dans les dépendances. Consultez l'exemple de code sur GitHub pour en savoir plus sur cette bibliothèque.
Documentation de référence de l'API pour la bibliothèque Support relative aux accessoires connectés
La documentation de référence fournit des informations détaillées sur les classes que vous utilisez pour implémenter des cadrans. Parcourez la documentation de référence de l'API pour trouver la bibliothèque Support relative aux accessoires connectés.
Déclarer des autorisations
Un cadran nécessite l'autorisation WAKE_LOCK
.
Ajoutez l'autorisation suivante aux fichiers manifeste de l'application Wear OS et de l'application de téléphone mobile sous l'élément 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>
Compatibilité avec les appareils rectangulaires
Par défaut, les cadrans des appareils rectangulaires sont exécutés en mode d'émulation carré pour prendre en charge les cadrans conçus pour les appareils carrés et circulaires. Si vous souhaitez utiliser des appareils rectangulaires, remplacez ce comportement en créant une balise meta-data
sur le cadran service
de votre fichier manifest
et en définissant android.service.wallpaper.square_mode
sur false
, comme indiqué dans l'exemple de code suivant :
<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>
Implémenter les méthodes de service et de rappel
Les cadrans de Wear OS sont implémentés en tant que WatchFaceService
.
L'implémentation d'un WatchFaceService
nécessite la création de trois objets : UserStyleSchema
, ComplicationSlotsManager
et WatchFace
.
Ces trois objets sont spécifiés en remplaçant trois méthodes abstraites de WatchFaceService
, comme indiqué dans l'exemple suivant :
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 = // ... }
Enregistrer le service du cadran
Une fois que vous avez mis en œuvre le service de cadran, enregistrez-le dans le fichier manifeste de l'application connectée. Lorsque les utilisateurs installent cette application, le système utilise les informations du service pour rendre le cadran disponible dans l'application Wear OS associée et dans le sélecteur de cadran de l'objet connecté.
L'exemple suivant montre comment enregistrer une implémentation du cadran sous l'élément <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>
L'application associée Wear OS by Google et le sélecteur de cadran sur l'accessoire connecté utilisent l'image d'aperçu définie par l'entrée de métadonnées com.google.android.wearable.watchface.preview
lors de la présentation des cadrans installés sur l'appareil. Pour obtenir ce drawable, exécutez le cadran sur votre appareil Wear OS ou dans une instance d'émulateur et effectuez une capture d'écran. Sur les appareils Wear équipés d'écrans HDPI, la taille de l'image d'aperçu est généralement de 320 x 320 pixels.
Les cadrans très différents sur les appareils arrondis peuvent fournir à la fois des images d'aperçu arrondies et carrées. Pour spécifier une image d'aperçu arrondie, utilisez l'entrée de métadonnées com.google.android.wearable.watchface.preview_circular
. Si un cadran inclut les deux types d'images d'aperçu, l'application associée et le sélecteur de cadran sur l'accessoire connecté affichent l'image appropriée, selon la forme de la montre. Si aucune image d'aperçu arrondie n'est fournie, l'image d'aperçu carrée est utilisée pour les appareils carrés et ronds. Pour les appareils ronds, une image d'aperçu carrée est recadrée à l'aide d'une forme circulaire.
L'entrée de métadonnées android.service.wallpaper
spécifie le fichier de ressources watch_face.xml
, qui contient un élément wallpaper
, comme illustré dans l'exemple suivant :
<?xml version="1.0" encoding="UTF-8"?> <wallpaper xmlns:android="http://schemas.android.com/apk/res/android" />
Votre application connectée peut contenir plusieurs cadrans. Vous devez ajouter une entrée de service au fichier manifeste de l'appli connectée pour chaque implémentation du cadran.
Ressources associées
Consultez les ressources associées suivantes :