Notifiche su Wear OS

Le notifiche sugli smartwatch utilizzano le stesse API e hanno la stessa struttura delle notifiche sugli smartphone.

Le notifiche possono essere visualizzate su uno smartwatch in due modi:

  1. Un'app mobile crea una notifica e il sistema la trasferisce automaticamente allo smartwatch.
  2. Un'app per indossabili crea una notifica.

Per entrambi gli scenari, utilizza la classe NotificationCompat.Builder per creare le notifiche. Quando crei notifiche con la classe Builder, il sistema si occupa di visualizzarle correttamente. Ad esempio, quando invii una notifica dalla tua app mobile, ogni notifica viene visualizzata come scheda nel flusso di notifiche.

Esamina l'esempio seguente per vedere come vengono visualizzate le notifiche. notification-cards

Figura 1. La stessa notifica visualizzata su uno smartphone e su uno smartwatch.

Per ottenere risultati ottimali, utilizza una delle sottoclassi NotificationCompat.Style.

Nota:L'utilizzo di RemoteViews rimuove i layout personalizzati dalle notifiche e il dispositivo indossabile mostra solo il testo e le icone.

Notifiche consigliate per i dispositivi indossabili

Utilizza le notifiche espandibili come punto di partenza per tutte le notifiche, in quanto sono un ottimo modo per coinvolgere gli utenti di indossabili. Lo stato compresso viene visualizzato nella barra delle notifiche per un'esperienza breve e rapida. Se l'utente tocca la notifica, questa si espande, mostrando un'esperienza immersiva e scorrevole di contenuti e azioni aggiuntivi.

Puoi creare una notifica espandibile allo stesso modo in cui faresti su un dispositivo mobile, utilizzando una delle sottoclassi NotificationCompat.Style. Ad esempio, una notifica standard che utilizza NotificationCompat.MessagingStyle ha questo aspetto: expandable-notification

Figura 2. Esempio di notifica MessagingStyle su Wear OS.

Puoi notare che la notifica ha più azioni impilate nella parte inferiore dello stato espanso.

Per esempi di NotificationCompat.BigPictureStyle, NotificationCompat.BigTextStyle, NotificationCompat.InboxStyle, e NotificationCompat.MessagingStyle, consulta l'esempio di notifica su GitHub.

Suggerimento:se le tue notifiche includono un'azione "Rispondi", ad esempio per un'app di messaggistica, puoi migliorare il comportamento della notifica. Ad esempio, puoi attivare le risposte con l'input vocale direttamente dal dispositivo indossabile o le risposte di testo predefinite con setChoices(). Per maggiori informazioni, leggi Aggiungere il pulsante Rispondi.

Evitare notifiche duplicate

Per impostazione predefinita, le notifiche vengono trasferite da un'app per smartphone complementare a tutti gli smartwatch accoppiati. È un'ottima opzione se non hai installato un'app per indossabili.

Tuttavia, se crei un'app per orologio autonoma e un'app per smartphone complementare, le app creano notifiche duplicate.

Wear OS offre un modo per interrompere le notifiche duplicate con le API di bridging. Ciò è particolarmente importante per le app sui dispositivi che eseguono Wear OS 5 o versioni successive, perché alcune notifiche che possono essere chiuse su un dispositivo mobile non possono essere chiuse sul dispositivo Wear OS. Per saperne di più, leggi Opzioni di bridging per le notifiche.

Aggiungere funzionalità specifiche per i dispositivi indossabili a una notifica

Se devi aggiungere funzionalità specifiche per i wearable a una notifica, ad esempio nascondere un'icona dell'app dalla notifica del wearable o consentire agli utenti di dettare una risposta di testo con l'input vocale, puoi utilizzare la classe NotificationCompat.WearableExtender per specificare le opzioni. Per utilizzare questa API:

  1. Crea un'istanza di un WearableExtender, impostando le opzioni specifiche per il wearable per la notifica.
  2. Crea un'istanza di NotificationCompat.Builder, impostando le proprietà desiderate per la notifica come descritto in precedenza in questa guida.
  3. Chiama extend() nella notifica e inserisci WearableExtender. In questo modo, le opzioni per i dispositivi indossabili vengono applicate alla notifica.
  4. Chiama build() per creare la notifica.

Nota:Se utilizzi NotificationManager del framework, alcune funzionalità di NotificationCompat.WearableExtender non funzionano, quindi assicurati di utilizzare NotificationCompat.

Puoi sincronizzare le chiusure o le cancellazioni delle notifiche sui dispositivi dell'utente. Per sincronizzare una chiusura, utilizza il metodo setDismissalId(). Per ogni notifica, passa un ID univoco globale come stringa quando chiami setDismissalId(). Quando la notifica viene ignorata, tutte le altre notifiche con lo stesso ID di chiusura vengono ignorate sullo smartwatch e sullo smartphone associato. Per recuperare un ID licenziamento, utilizza getDismissalId().

Specificare le azioni solo per indossabili

Se vuoi che siano disponibili azioni diverse sullo smartwatch e sullo smartphone, utilizza WearableExtender.addAction(). Una volta aggiunta un'azione con questo metodo, il dispositivo indossabile non mostra altre azioni aggiunte con NotificationCompat.Builder.addAction(). Le azioni aggiunte con WearableExtender.addAction() vengono visualizzate solo sul wearable, non sullo smartphone.

Avviare l'app Telefono da un dispositivo indossabile

Se utilizzi le notifiche bridge, qualsiasi notifica include automaticamente un pulsante per avviare l'app sullo smartphone. Tuttavia, se utilizzi una notifica locale creata sullo smartwatch, segui i seguenti passaggi per creare un pulsante che avvii l'app sullo smartphone:

  1. Crea un nuovo Activity che estenda ConfirmationActivity.
  2. Usa RemoteActivityHelper nel nuovo Activity per avviare l'app Telefono.
  3. Quando crei l'intent Intent per avviare l'Activity dalla notifica, imposta l'extra EXTRA_ANIMATION_TYPE su OPEN_ON_PHONE_ANIMATION.
Questo approccio guida l'utente a interagire sul proprio smartphone e segue i requisiti della piattaforma per l'avvio dei processi in background.

Nota:non puoi utilizzare un BroadcastReceiver come target dell'azione di notifica.