Autorizzazione di notifica per le notifiche di adesione

Le notifiche in Android 13 utilizzano un modello di attivazione, che rappresenta una modifica rispetto alle versioni precedenti di Android, che utilizzano un modello di disattivazione. In Android 13, tutte le app devono chiedere l'autorizzazione agli utenti prima di inviare richieste di notifica. Questo modello aiuta a ridurre le interruzioni delle notifiche, riduce al minimo il sovraccarico di informazioni e aiuta gli utenti a controllare quali notifiche vengono visualizzate in base a ciò che è importante per loro. Per supportare il modello opt-in, gli OEM devono implementare modifiche nei sistemi di notifica e di autorizzazione in fase di esecuzione.

Questa pagina descrive cosa devono implementare gli OEM per supportare questo cambiamento e come convalidare l'implementazione.

Implementare le modifiche per le notifiche di attivazione

A partire da Android 13, le app devono dichiarare la propria intenzione di inviare notifiche richiedendo l'autorizzazione di runtime android.permission.POST_NOTIFICATION al sistema prima di poter inviare notifiche.

In Android 13 e versioni successive, l'impostazione che determina se un'app può inviare notifiche all'utente è archiviata nel sistema di autorizzazione. Prima di Android 13, questa impostazione veniva memorizzata nel sistema di notifica. Pertanto, gli OEM devono migrare i dati di notifica esistenti relativi all'autorizzazione o meno a un'app a inviare notifiche, dal sistema di notifica al sistema di autorizzazione di runtime. Gli OEM devono inoltre mantenere le API esistenti nel sistema di notifica che mostrano tali dati agli sviluppatori di app.

Le modifiche ai sistemi di notifica e autorizzazione si basano sul modello opt-in del comportamento di notifica dell'utente e sono descritte nella sezione Linee guida per l'implementazione .

Comportamento delle notifiche utente in un modello opt-in

La tabella seguente illustra il comportamento delle notifiche per le varie versioni dell'app su un dispositivo con Android 13:

Dispositivo su Android 13 App destinate ad Android 13 o versioni successive App destinate a versioni precedenti ad Android 13
Nuova installazione Le notifiche vengono bloccate finché non vengono richieste dall'app.

Le app controllano quando chiedere l'autorizzazione.

Le notifiche vengono bloccate finché non viene richiesto dal sistema operativo.

L'autorizzazione viene richiesta alla prima esecuzione dell'app.

App esistente (aggiornamento) Le notifiche sono consentite finché non vengono richieste dall'app.

L'autorizzazione temporanea viene concessa finché l'app non lo richiede durante la prima corsa di qualificazione.

Le notifiche sono consentite finché non vengono richieste dal sistema operativo.

Viene concessa un'autorizzazione temporanea fino alla prima esecuzione dell'app.

Linee guida per l'implementazione

Per l'implementazione di riferimento, fare riferimento al servizio di notifica , al servizio di autorizzazione e al servizio di policy . Per implementare le eccezioni per i gestori delle autorizzazioni predefiniti, vedere Autorizzazioni di runtime .

Durante l'implementazione, utilizza le seguenti linee guida sul comportamento delle notifiche utente per le app destinate ad Android 13 o SDK precedenti:

  • Le app appena installate su un dispositivo Android 13 non devono inviare una notifica senza che l'utente approvi una richiesta di autorizzazione.
    • Se l'app è destinata alle versioni Android 13 e successive, le notifiche devono essere bloccate finché non viene richiesto dall'app poiché l'app controlla quando e se richiedere l'autorizzazione dell'utente.
    • Se l'app è destinata a versioni precedenti ad Android 13, le notifiche devono essere bloccate finché non viene richiesto dal sistema operativo. Il sistema operativo deve mostrare la richiesta di autorizzazione alla prima esecuzione dell'app.
  • Qualsiasi app esistente sul dispositivo prima di un aggiornamento ad Android 13 o qualsiasi app ripristinata tramite backup e ripristino deve essere autorizzata a inviare notifiche fino al primo avvio di un'attività da parte dell'utente da tale app.

    • Per le app destinate all'SDK delle versioni Android 13 e successive, se l'utente non ha precedentemente personalizzato le impostazioni di notifica per questa app a livello di app o NotificationChannel , revoca la concessione temporanea dell'autorizzazione. Le app devono quindi chiedere l'autorizzazione all'utente prima di poter continuare a inviare notifiche.

      Se un'app aggiornata destinata ad Android 13 non dispone attualmente dell'autorizzazione di notifica tramite la concessione di aggiornamento temporaneo e l'utente l'ha avviata almeno una volta, l'app deve mostrare una richiesta di autorizzazione di notifica prima di poter eseguire ulteriori servizi in primo piano.

    • Per le app che hanno un SDK di destinazione di versioni precedenti ad Android 13, intercetta il primo avvio dell'attività dopo che l'app ha creato almeno un NotificationChannel per mostrare una richiesta di autorizzazione che chiede se l'utente desidera ricevere notifiche dall'app.

      Se un utente ha precedentemente personalizzato le impostazioni di notifica a livello di app o NotificationChannel per un'app sul dispositivo in aggiornamento o in un backup in fase di ripristino sul dispositivo, l'impostazione a livello di app deve essere migrata nel sistema di autorizzazione con il flag FLAG_PERMISSION_USER_SET . All'utente non deve essere mostrata alcuna ulteriore richiesta di autorizzazione per la notifica, a meno che l'app non lo richieda espressamente.

  • Il backup e il ripristino devono essere compatibili con le versioni precedenti e successive tra un dispositivo Android 13 e un dispositivo con una versione precedente del sistema operativo. I dati di backup generati da un dispositivo Android 13 devono essere ripristinati su una versione precedente del sistema operativo e i dati di backup da una versione precedente del sistema operativo devono essere ripristinati su un dispositivo Android 13.

  • Le notifiche multimediali associate alla riproduzione multimediale in corso devono essere esentate dall'autorizzazione di notifica.

Convalidare le modifiche ai sistemi di notifica e autorizzazione

Per convalidare l'implementazione, eseguire i seguenti test: