Autorizzazione per le notifiche di attivazione

Le notifiche in Android 13 utilizzano un modello di attivazione, che è diverso dalle versioni precedenti di Android, che utilizzano un modello di disattivazione. In Android 13, tutte le app devono chiedere agli utenti l'autorizzazione prima di inviare prompt di notifica. Questo modello aiuta a ridurre le interruzioni delle notifiche, a ridurre al minimo il sovraccarico di informazioni e ad aiutare gli utenti a controllare quali notifiche vengono visualizzate in base a ciò che è importante per loro. Per supportare il modello di attivazione, gli OEM devono implementare modifiche nei sistemi di autorizzazione di runtime e di notifica.

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

Implementare le modifiche per le notifiche di attivazione

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

In Android 13 e versioni successive, l'impostazione che determina se un'app può inviare notifiche all'utente è memorizzata nel sistema di autorizzazione. Prima di Android 13, questa impostazione era memorizzata nel sistema di notifica. Pertanto, gli OEM devono eseguire la migrazione dei dati di notifica esistenti per verificare se un'app è autorizzata a inviare notifiche dal sistema di notifica al sistema di autorizzazione di runtime. Gli OEM devono anche mantenere le API esistenti nel sistema di notifica che mostrano questi dati agli sviluppatori di app.

Le modifiche ai sistemi di notifica e di autorizzazione si basano sul modello di attivazione del comportamento delle notifiche utente e sono descritte nella sezione Linee guida per l'implementazione.

Comportamento delle notifiche utente in un modello di attivazione

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

Dispositivo con Android 13 App con target Android 13 o versioni successive App con target versioni precedenti ad Android 13
Nuova installazione Le notifiche vengono bloccate finché non viene richiesto dall'app.

Le app controllano quando chiedere l'autorizzazione.

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

L'autorizzazione viene richiesta al primo avvio dell'app.

App esistente (upgrade) Le notifiche sono consentite finché non viene richiesto dall'app.

L'autorizzazione temporanea viene concessa fino a quando l'app non la richiede al primo avvio idoneo.

Le notifiche sono consentite finché non viene richiesto dal sistema operativo.

L'autorizzazione temporanea viene concessa fino al primo avvio dell'app.

Linee guida per l'implementazione

Per l'implementazione di riferimento, consulta il servizio di notifica, servizio di autorizzazione e il servizio di policy. Per implementare le eccezioni per i gestori di autorizzazioni predefiniti, consulta Autorizzazioni di runtime.

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

  • Le app appena installate su un dispositivo Android 13 non devono inviare una notifica senza che l'utente approvi un prompt di autorizzazione.
    • Se l'app ha come target le versioni Android 13 e successive, le notifiche devono essere bloccate finché non viene richiesto dall'app, poiché l'app controlla quando e se chiedere l'autorizzazione dell'utente.
    • Se l'app ha come target versioni precedenti ad Android 13, le notifiche devono essere bloccate finché non viene richiesto dal sistema operativo. Il sistema operativo deve mostrare il prompt di autorizzazione al primo avvio dell'app.
  • A qualsiasi app esistente sul dispositivo prima di un upgrade ad Android 13 o a qualsiasi app ripristinata tramite backup e ripristino deve essere consentito di inviare notifiche fino al primo avvio di un'attività da parte dell'utente.

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

      Se un'app aggiornata con target Android 13 non dispone attualmente dell'autorizzazione alle notifiche tramite la concessione dell'upgrade temporaneo e l'utente l'ha avviata almeno una volta, l'app deve mostrare un prompt di autorizzazione alle notifiche prima di poter eseguire altri servizi in primo piano.

    • Per le app con target SDK delle versioni precedenti ad Android 13, intercetta il primo avvio dell'attività dopo che l'app ha creato almeno un NotificationChannel per mostrare un prompt di autorizzazione che chiede all'utente se vuole ricevere notifiche dall'app.

      Se un utente ha personalizzato in precedenza le impostazioni di notifica a livello di app o NotificationChannel per un'app sul dispositivo in fase di upgrade 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. Non deve essere mostrato all'utente alcun altro prompt di autorizzazione alle notifiche, a meno che l'app non lo richieda specificamente.

  • 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 del sistema operativo precedente. I dati di backup generati da un dispositivo Android 13 devono essere ripristinati su una versione del sistema operativo precedente e i dati di backup di una versione del sistema operativo precedente devono essere ripristinati su un dispositivo Android 13.

  • Le notifiche multimediali associate alla riproduzione multimediale in corso devono essere esenti dall'autorizzazione alle notifiche.

Convalidare le modifiche ai sistemi di notifica e di autorizzazione

Per convalidare l'implementazione, esegui i seguenti test: