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:
- Un'app mobile crea una notifica e il sistema la trasferisce automaticamente allo smartwatch.
- 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.
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:
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:
-
Crea un'istanza di un
WearableExtender
, impostando le opzioni specifiche per il wearable per la notifica. -
Crea un'istanza di
NotificationCompat.Builder
, impostando le proprietà desiderate per la notifica come descritto in precedenza in questa guida. -
Chiama
extend()
nella notifica e inserisciWearableExtender
. In questo modo, le opzioni per i dispositivi indossabili vengono applicate alla notifica. -
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:
- Crea un nuovo
Activity
che estendaConfirmationActivity
. - Usa
RemoteActivityHelper
nel nuovoActivity
per avviare l'app Telefono. - Quando crei l'intent
Intent
per avviare l'Activity
dalla notifica, imposta l'extraEXTRA_ANIMATION_TYPE
suOPEN_ON_PHONE_ANIMATION
.
Nota:non puoi utilizzare un BroadcastReceiver
come target
dell'azione di notifica.