Per le notifiche in Android 13 viene usato un modello di attivazione, che è una modifica rispetto alle versioni precedenti di Android, che utilizzano un modello di disattivazione. Nel Android 13: tutte le app devono chiedere l'autorizzazione agli utenti prima inviare richieste di notifica. Questo modello aiuta a ridurre le notifiche le interruzioni, riduce al minimo il sovraccarico di informazioni e aiuta gli utenti a controllare le notifiche vengono visualizzate in base a ciò che è importante per loro. Per supportare di attivazione, gli OEM devono implementare modifiche nella notifica e nel sistemi di autorizzazione.
In questa pagina viene descritto cosa devono implementare gli OEM per supportare questa modifica e in che modo per convalidare l'implementazione.
Implementare modifiche per le notifiche di attivazione
A partire da Android 13, le app devono dichiarare la propria
di inviare notifiche richiedendo
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 viene archiviata nel sistema di autorizzazione. Prima di Android 13, questa impostazione veniva memorizzata di notifica. Gli OEM devono quindi eseguire la migrazione dei dati di notifica esistenti sulla possibilità per un'app di inviare notifiche, dalla notifica al sistema di autorizzazioni di runtime. Gli OEM devono inoltre 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 sui modello di comportamento delle notifiche da parte dell'utente e sono descritte nella sezione Linee guida per l'implementazione.
Comportamento delle notifiche agli utenti in un modello di attivazione
La tabella seguente illustra il comportamento delle notifiche per diverse app su un dispositivo con Android 13:
Dispositivo su 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 sono bloccate finché non richiesto dall'app.
Le app stabiliscono quando chiedere l'autorizzazione. |
Le notifiche sono bloccate finché non richiesto dal sistema operativo.
L'autorizzazione viene richiesta alla prima esecuzione dell'app. |
App esistente (upgrade) | Le notifiche sono consentite finché non vengono richieste dall'app.
L'autorizzazione temporanea viene concessa finché l'app non la chiede alla prima esecuzione idonea. |
Le notifiche sono consentite finché non richiesto dal sistema operativo.
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 autorizzazioni e servizio per le norme. Per implementare le eccezioni Per i gestori delle autorizzazioni predefiniti, consulta Autorizzazioni di runtime.
Durante l'implementazione, attieniti alle seguenti linee guida relative alle notifiche per gli utenti comportamento per le app che hanno come target SDK Android 13 o versioni precedenti:
- Le app appena installate su un dispositivo Android 13 devono
Non inviare una notifica senza che l'utente approvi una richiesta di autorizzazione.
- Se l'app ha come target le versioni Android 13 e superiore, le notifiche devono essere bloccate finché non viene richiesto dall'app come tale stabilisce quando e se richiedere l'autorizzazione dell'utente.
- Se l'app ha come target versioni precedenti a Android 13, le notifiche devono essere bloccate fino al giorno richiesto dal sistema operativo. Il sistema operativo deve mostrare il prompt di autorizzazione alla prima esecuzione l'app.
Qualsiasi app esistente sul dispositivo prima di un upgrade a Android 13 o qualsiasi app ripristinata tramite backup e ripristino devono poter 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 successivi, se l'utente non ha precedentemente personalizzato le impostazioni di notifica per questa app a livello di app o
NotificationChannel
, revoca l'autorizzazione temporanea la concessione dell'autorizzazione. Le app devono chiedere l'autorizzazione all'utente prima di essere autorizzati a continuare a inviare notifiche.Se un'app di cui è stato eseguito l'upgrade che ha come target Android 13 dispongono attualmente dell'autorizzazione alle notifiche tramite l'upgrade temporaneo concedere e l'utente l'ha avviata almeno una volta, l'app deve mostrare un richiesta di autorizzazione alle notifiche prima che sia consentita l'esecuzione di ulteriori oggetti in primo piano i servizi di machine learning.
Per le app con un SDK target con versioni precedenti a 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. direttamente dall'app.Se in precedenza un utente personalizzava le impostazioni di notifica a livello di app o
NotificationChannel
per un'app sul dispositivo di cui è stato eseguito l'upgrade o in una ripristinare il backup sul dispositivo, è necessario eseguire la migrazione dell'impostazione a livello di app il sistema di autorizzazione con il flagFLAG_PERMISSION_USER_SET
. Mai più la richiesta di autorizzazione alle notifiche deve essere mostrata all'utente, a meno che l'app che lo richieda in modo specifico.
Backup e ripristino deve essere compatibile con le versioni precedenti e future tra un Un dispositivo Android 13 e un dispositivo con un sistema operativo precedente completamente gestita. Dati di backup generati da Android 13 il dispositivo deve eseguire il ripristino su una versione precedente del sistema operativo ed eseguire il backup dei dati da una La versione del sistema operativo deve essere ripristinata su un dispositivo Android 13.
Le notifiche relative ai contenuti multimediali associate alla riproduzione di contenuti multimediali in corso devono essere esenti dall'autorizzazione alle notifiche.
Convalida le modifiche ai sistemi di notifica e autorizzazione
Per convalidare l'implementazione, esegui questi test:
Test delle unità come specificato in
PreferencesHelperTest
,NotificationManagerServiceTest
.Qualsiasi test manuale che verifichi gli upgrade, il backup e il ripristino.
Qualsiasi test del sistema di autorizzazione e notifica CTS che invia notifiche. Alcuni di questi test si trovano in cts/tests/tests/permission/, NotificationManagerTest.java, e cts/tests/tests/notificationlegacy/.