Notificações no Wear OS

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

As notificações em smartwatches usam as mesmas APIs e têm a mesma estrutura das notificações em smartphones.

As notificações podem aparecer em um smartwatch de duas maneiras:

  1. O app para dispositivos móveis cria uma notificação e o sistema conecta automaticamente essa notificação ao smartwatch.
  2. Um app para wearables cria uma notificação.

Em ambos os cenários, os desenvolvedores usam a classe NotificationCompat.Builder para criar notificações. Ao criar notificações com a classe builder, o sistema se encarrega de mostrar as notificações corretamente.

Por exemplo, quando você emite uma notificação do seu app para dispositivos móveis, cada notificação é mostrada como um card no fluxo de notificações.

cards de notificação

Figura 1. A mesma notificação mostrada no smartphone e no smartwatch.

Use uma das subclasses NotificationCompat.Style para ter os melhores resultados.

Notificações recomendadas para wearables

Recomendamos usar notificações que podem ser abertas como o ponto de partida para todas as notificações, porque elas são uma ótima maneira de engajamento para os usuários de wearables. O estado recolhido é mostrado na bandeja de notificações para proporcionar uma experiência curta e fácil de entender. Se o usuário tocar nela, a notificação é aberta, revelando uma experiência imersiva e rolável de conteúdo e ações adicionais.

É possível Criar uma notificação que pode ser aberta da mesma forma que em um dispositivo móvel com qualquer uma das subclasses NotificationCompat.Style.

Por exemplo, uma notificação padrão que usa NotificationCompat.MessagingStyle tem esta aparência: notificação que pode ser aberta

Figura 2. Exemplo de uma notificação MessagingStyle no Wear OS.

Você vai notar que a notificação tem várias Ações empilhadas na parte de baixo do estado aberto.

Para conferir exemplos de NotificationCompat.BigPictureStyle, NotificationCompat.BigTextStyle, NotificationCompat.InboxStyle, e NotificationCompat.MessagingStyle, consulte o Exemplo de notificação (em inglês) no GitHub.

Dica: caso suas notificações incluam uma ação "Responder" (como para um app de mensagens), é possível melhorar o comportamento da notificação. Por exemplo, ative as respostas de entrada de texto por voz diretamente do wearable ou de respostas de texto predefinidas com setChoices(). Para mais informações, leia Adicionar o botão de resposta.

Como evitar notificações duplicadas

Por padrão, as notificações são transmitidas de um aplicativo para smartphones associados para qualquer smartwatch pareado. Essa é uma ótima opção se você não tiver um app para wearables instalado.

No entanto, se você criar um app para smartwatch independente e tiver um aplicativo para smartphones associados, eles vão criar notificações duplicadas.

O Wear OS oferece uma maneira de interromper as notificações duplicadas com as APIs Bridging. Para mais informações, leia Modo bridge para notificações no Wear.

Adicionar recursos específicos de wearable a uma notificação

Se você precisar adicionar recursos específicos do wearable a uma notificação, como ocultar um ícone de app da notificação wearable ou permitir que os usuários ditem uma resposta com entrada de texto por voz, use a classe NotificationCompat.WearableExtender para especificar as opções. Para usar essa API, siga as etapas abaixo:

  1. Crie uma instância de um WearableExtender, definindo as opções específicas de wearable para a notificação.
  2. Crie uma instância de NotificationCompat.Builder, definindo as propriedades desejadas para a notificação conforme descrito anteriormente nesta lição.
  3. Chame extend() na notificação e transmita o WearableExtender. Isso aplica as opções de wearable à notificação.
  4. Chame build() para criar a notificação.

Observação: se você usar o NotificationManager do framework, alguns recursos do NotificationCompat.WearableExtender não vão funcionar. Use NotificationCompat.

É possível sincronizar as dispensas (os cancelamentos) de notificações nos dispositivos do usuário. Para sincronizar um método de dispensa setDismissalId(). Para cada notificação, transmita um ID globalmente exclusivo, como uma string, quando você chamar o método setDismissalId(). Quando a notificação é dispensada, todas as outras notificações com o mesmo ID são dispensadas nos smartwatches e no telefone associado. Para acessar um ID de dispensa, use getDismissalId().

Especificar ações exclusivas de wearable

Para conferir ações diferentes disponíveis no smartwatch e no smartphone, use WearableExtender.addAction(). Depois de adicionar uma ação com esse método, o wearable não vai mostrar outras ações adicionadas com NotificationCompat.Builder.addAction(). As ações adicionadas com WearableExtender.addAction() aparecem somente no wearable e não no smartphone.