Notifiche su Wear OS

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

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

  1. Un'app mobile crea una notifica e il sistema la collega automaticamente allo smartwatch.
  2. Un'app indossabile crea una notifica.

In entrambi gli scenari, utilizza la classe NotificationCompat.Builder per creare notifiche. Quando crei notifiche con la classe del builder, il sistema si occupa di visualizzarle correttamente. Ad esempio, quando invii una notifica dall'app mobile, ogni notifica viene visualizzata sotto forma di scheda nello stream delle notifiche.

Esamina l'esempio che segue per vedere come vengono visualizzate le notifiche. schede-di-notifiche

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

Utilizza una delle sottoclassi NotificationCompat.Style per ottenere risultati ottimali.

Nota: con l'uso di RemoteViews vengono rimosse le notifiche dei layout personalizzati e il dispositivo indossabile mostra solo il testo e le icone.

Notifiche consigliate per gli indossabili

Usa le notifiche espandibili come punto di partenza per tutte le notifiche, poiché sono un ottimo modo per coinvolgere gli utenti indossabili. Lo stato compresso viene visualizzato nella barra delle notifiche per una breve esperienza di navigazione. Se l'utente la tocca, la notifica si espande e mostra un'esperienza immersiva e scorrevole di contenuti e azioni aggiuntivi.

Puoi creare una notifica espandibile come faresti sui dispositivi mobili, utilizzando una qualsiasi delle sottoclassi NotificationCompat.Style. Ad esempio, una notifica standard che utilizza NotificationCompat.MessagingStyle ha il seguente aspetto: notifica-espandibile

Figura 2. Esempio di notifica MessagingStyle su Wear OS.

Puoi vedere 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, controlla l'esempio di notifica su GitHub.

Suggerimento: se le notifiche includono un'azione di "risposta", come nel caso di un'app di messaggistica, puoi migliorare il comportamento della notifica. Ad esempio, puoi attivare le risposte all'input vocale direttamente dal dispositivo indossabile o risposte di testo predefinite con setChoices(). Per maggiori informazioni, consulta Aggiungere il pulsante di risposta.

Evita notifiche duplicate

Per impostazione predefinita, le notifiche vengono collegate dall'app per smartphone complementare a qualsiasi smartwatch accoppiato. Si tratta di un'ottima opzione se non hai installato un'app indossabile.

Tuttavia, se crei un'app autonoma per l'orologio e un'app per telefono complementare, queste ultime creano notifiche duplicate.

Wear OS offre un modo per bloccare le notifiche duplicate grazie alle API Bridging. Per maggiori informazioni, consulta Opzioni di raggruppamento per le notifiche.

Aggiungere funzionalità specifiche per i dispositivi indossabili a una notifica

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

  1. Crea un'istanza di WearableExtender, impostando le opzioni specifiche per i dispositivi indossabili 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() sulla notifica e passa nel WearableExtender. In questo modo, le opzioni indossabili vengono applicate alla notifica.
  4. Chiama build() per creare la notifica.

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

Puoi sincronizzare le eliminazioni o le cancellazioni delle notifiche su tutti i dispositivi dell'utente. Per sincronizzare un avviso, utilizza il metodo setDismissalId(). Per ogni notifica, trasmetti un ID univoco globale come stringa quando chiami setDismissalId(). Quando la notifica viene ignorata, tutte le altre notifiche con lo stesso ID per ignorare vengono ignorate sullo smartwatch e sullo smartphone accoppiato. Per recuperare un ID ignorato, utilizza getDismissalId().

Specifica le azioni solo per i dispositivi indossabili

Se vuoi che azioni diverse siano disponibili sullo smartwatch e sullo smartphone, utilizza WearableExtender.addAction(). Dopo aver aggiunto 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 dispositivo indossabile, non sullo smartphone.