Autorizzazione per le notifiche di attivazione

Le notifiche in Android 13 utilizzano un modello di attivazione, che rappresenta un cambiamento 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 conferma per le notifiche. Questo modello contribuisce 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 di attivazione, gli OEM devono implementare modifiche ai sistemi di notifiche e autorizzazioni di runtime.

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

Implementare le modifiche per le notifiche attive

A partire da Android 13, le app devono dichiarare la loro intenzione di inviare notifiche richiedendo al sistema l'autorizzazione di runtime android.permission.POST_NOTIFICATION 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. Di conseguenza, gli OEM devono eseguire la migrazione dei dati sulle notifiche esistenti relativi al fatto che un'app sia 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 autorizzazione si basano sul modello di attivazione del comportamento di notifica degli utenti e sono descritte nella sezione Linee guida per l'implementazione.

Comportamento delle notifiche utente in un modello di attivazione

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

Dispositivo con Android 13 App che hanno come target Android 13 o versioni successive App che hanno come target versioni precedenti ad Android 13
Nuova installazione Le notifiche vengono bloccate fino a quando non viene richiesto dall'app.

Sono le app a controllare quando chiedere l'autorizzazione.

Le notifiche vengono bloccate fino a quando non viene richiesto dall'OS.

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

App esistente (upgrade) Le notifiche sono consentite fino a quando non viene richiesto dall'app.

L'autorizzazione temporanea viene concessa finché l'app non la richiede alla prima esecuzione idonea.

Le notifiche sono consentite fino a quando non viene richiesto dall'OS.

L'autorizzazione temporanea viene concessa fino alla prima esecuzione dell'app.

Linee guida per l'implementazione

Per l'implementazione di riferimento, consulta servizio di notifica, servizio di autorizzazione e servizio di norme. Per implementare le eccezioni per i gestori delle autorizzazioni predefinite, consulta Autorizzazioni di runtime.

Durante l'implementazione, segui le seguenti linee guida sul comportamento delle notifiche per gli utenti per le app che hanno come 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 abbia approvato una richiesta di autorizzazione.
    • Se l'app ha come target le versioni Android 13 e superiori, le notifiche devono essere bloccate finché non viene richiesto dall'app, in quanto è l'app a controllare 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 la richiesta di autorizzazione alla prima esecuzione dell'app.
  • A qualsiasi app esistente sul dispositivo prima di un upgrade ad Android 13 o a qualsiasi app ripristinata tramite il backup e il ripristino deve essere consentito inviare notifiche fino alla prima volta che l'utente avvia un'attività da quell'app.

    • Per le app che hanno come target l'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 all'utente l'autorizzazione prima di poter continuare a inviare notifiche.

      Se un'app di cui è stato eseguito l'upgrade e che ha come target Android 13 non ha attualmente l'autorizzazione di notifica tramite la concessione dell'upgrade temporaneo e l'utente l'ha avviata almeno una volta, l'app deve mostrare una richiesta di autorizzazione di notifica prima di poter eseguire altri servizi in primo piano.

    • Per le app con 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 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 di cui viene eseguito l'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 mostrata all'utente un'ulteriore richiesta di autorizzazione di notifica, a meno che l'app non lo chieda 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 di 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 esenti dall'autorizzazione di notifica.

Convalida le modifiche ai sistemi di notifica e autorizzazione

Per convalidare l'implementazione, esegui i seguenti test: