2

Je suis en train de développer une série de cadrans de montre Android Wear 2 et j'ai apparemment trouvé un problème que je ne peux pas résoudre. Dans les images, vous pouvez voir deux guillemets simples de Google (je suis désolé, je ne peux pas intégrer des images, pour le moment). La première provient du projet d'exemple Google Developer Codelabs.Complication du nombre de notifications non lues dans Android Wear 2

Google Developer Codelabs watch face

Le second est installé par défaut dans AW2 et il est appelé « analogique Eléments » (mais il y a aussi un « Digital Elements », tout à fait similaire). J'ai désactivé toutes les autres complications sauf celle de gauche.

Elements analog watch face

les deux faces de la montre montrent des informations du même fournisseur de données de complication, le système de notification non lu nombre (dans l'aide de complication, sélectionnez Général - nombre> de notification non lue). Cependant, comme vous pouvez le voir, la même information est affichée de deux façons très différentes.

Mon problème est que je ne peux pas comprendre comment cela est possible. La complication du nombre de notifications non lues est de type TYPE_ICON.

Selon la documentation, la seule information présente dans le ComplicationData associée aux complications de type TYPE_ICON, est une icône, récupérable en appelant complicationData.getIcon(). Et, en fait, l'icône est là et c'est une image du nombre réel de notifications non lues. L'image d'un nombre dans un cercle (comme vous le voyez dans le premier cadran). Il n'y a pas d'icône de cloche (deuxième cadran) et il n'y a pas de valeur de comptage non lu séparée dans une autre variable. Rien. J'ai pensé que je pourrais éviter d'utiliser la méthode des complications pour dessiner la complication et le faire à ma guise, mais, comme je l'ai dit, la seule chose que je sais de la complication, quand elle est créée ou mise à jour, c'est qu'elle est du type TYPE_ICON. Rien d'autre. Aucun nom de fournisseur, aucune valeur. Juste une icône de numéro.

Qu'est-ce qui me manque? Comment puis-je dessiner la complication d'une manière similaire à celle de la deuxième image?

Merci.

Répondre

1

J'ai réussi à dessiner la complication de comptage non lus comme dans la seconde image (le cadran de la montre analogique Elements), comme je le voulais.

Il s'agissait de l'ordre dans lequel les types de complication pris en charge ont été déclarés. Dans les Codelabs montre le code du visage (la première image ci-dessus), ce fut l'ordre de déclaration pour une seule complication:

TYPE_RANGED_VALUE, 
TYPE_ICON, 
TYPE_SHORT_TEXT, 
TYPE_SMALL_IMAGE 

Comme vous pouvez le voir, le type TYPE_ICON vient avant la TYPE_SHORT_TEXT un. Cela modifie la manière dont le fournisseur de données, qui pour le compte de notification non lu est un système, assemble les données de complication.

en déclarant la complication type pris en charge dans cet ordre:

TYPE_RANGED_VALUE, 
TYPE_SHORT_TEXT, 
TYPE_SMALL_IMAGE, 
TYPE_ICON 

les données de complication se présente sous la forme d'un TYPE_SHORT_TEXT, avec l'icône de la cloche et la valeur de comptage non lu, comme on le souhaite.

La documentation est assez floue à ce sujet, je pense. Tout ce que j'ai trouvé (ici: https://developer.android.com/training/wearables/watch-faces/complications.html) est: « Les types doivent être classés par ordre de préférence, le plus souvent avec des types offrant plus d'informations, telles que la valeur à distance, étant donné la préférence supérieure »

Hope this helps.