Android 13 (livello API 33) e versioni successive supporta una
autorizzazione di runtime per l'invio
Notifiche non esenti (inclusi i servizi in primo piano (FGS))
da un'app:
POST_NOTIFICATIONS
.
Questa modifica consente agli utenti di concentrarsi sulle notifiche più importanti per
che li rappresentano.
Ti consigliamo vivamente di scegliere come target Android 13 o versioni successive il prima possibile. i vantaggi derivanti dall'ulteriore controllo e dalla flessibilità dell'infrastruttura funzionalità. Se continui a scegliere come target il 12L (livello API 32) o un livello inferiore, perdere flessibilità nel richiedere l'autorizzazione nel contesto del traffico funzionalità.
Dichiara l'autorizzazione
Per richiedere la nuova autorizzazione alle notifiche dalla tua app, aggiorna l'app in scegliere come target Android 13 e completare una procedura simile rispetto a richiedere altre autorizzazioni di runtime, mostrato nelle sezioni seguenti.
L'autorizzazione necessaria dichiarare nel file manifest dell'app compare nel seguente snippet di codice:
<manifest ...> <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> <application ...> ... </application> </manifest>
Le funzionalità dell'app dipendono dalla scelta dell'utente nella finestra di dialogo delle autorizzazioni
In questa finestra di dialogo, gli utenti hanno le seguenti azioni a sua disposizione:
- Seleziona consenti
- Seleziona Non consentire
- Scorri lontano dalla finestra di dialogo senza premere nessuno dei due pulsanti
Le seguenti sezioni descrivono il comportamento dell'app, in base all'azione richiesta dall'utente.
L'utente seleziona "Consenti"
Se l'utente seleziona l'opzione consenti, l'app può:
- Invia notifiche. Tutti canali di notifica sono consentiti.
- Pubblicare notifiche relative a elementi in primo piano Google Cloud. Questi le notifiche vengono visualizzate nella riquadro a scomparsa delle notifiche.
L'utente seleziona "Non consentire"
Se l'utente seleziona l'opzione Non consentire, l'app non può inviare notifiche, a meno che tu non abbia diritto a un'esenzione. Tutti canali di notifica sono bloccati, ad eccezione di alcuni ruoli. Si tratta di un comportamento simile a quello che si verifica quando l'utente gira manualmente disattiva tutte le notifiche per la tua app nelle impostazioni di sistema.
Attenzione:se l'app ha come target i 12 litri o meno Quando l'utente tocca Non consentire, anche solo una volta, non viene richiesto finché non si verifica una delle seguenti condizioni:
- L'utente disinstalla e reinstalla la tua app.
- Devi aggiornare l'app in modo che abbia come target Android 13 o versioni successive.
L'utente scorre per uscire dalla finestra di dialogo
Se l'utente scorre verso l'esterno la finestra di dialogo, ovvero non seleziona allow o don't allow: lo stato dell'autorizzazione alle notifiche non modifica.
Effetti sulle app appena installate
Se un utente installa la tua app su un dispositivo con Android 13 o successiva, le notifiche dell'app sono disattivate per impostazione predefinita. L'app deve attendere a inviare notifiche fino a quando non richiedi la nuova autorizzazione e l'utente che concede l'autorizzazione alla tua app.
L'ora in cui viene visualizzata la finestra di dialogo delle autorizzazioni si basa sul target della tua app Versione SDK:
- Se la tua app ha come target Android 13 o versioni successive, l'app è stata completata controllo su quando viene visualizzata la finestra di dialogo delle autorizzazioni. Sfrutta questa opportunità per spiegare agli utenti perché l'app ha bisogno di questa autorizzazione. incoraggiandoli a concederlo.
- Se l'app ha come target 12L (livello API 32) o un livello inferiore, il sistema mostra la finestra di dialogo di autorizzazione la prima volta che l'app avvia un'attività dopo Crea un canale di notifica oppure quando le tue avvia un'attività e crea il primo canale di notifica. Questo solitamente all'avvio dell'app.
Effetti sugli aggiornamenti delle app esistenti
Per ridurre al minimo le interruzioni associate all'autorizzazione alle notifiche, il pre-concede automaticamente l'autorizzazione a tutti app idonee quando l'utente esegue l'upgrade del dispositivo a Android 13 o versioni successive. In altre parole, queste app possono continuare e inviare notifiche agli utenti, che non vedranno alcuna richiesta di autorizzazione di runtime.
Idoneità alla pre-concessione dell'autorizzazione
Affinché la tua app sia idonea alla pre-concessione automatica, deve avere un canale di notifica esistente e le relative notifiche non siano esplicitamente disattivate dall'utente su un dispositivo da 12 litri o meno.
Se l'utente ha disattivato le notifiche per la tua app su un dispositivo in esecuzione 12 L o inferiore, il rifiuto persiste quando il dispositivo upgrade ad Android 13 o versioni successive.
Esenzioni
Questa sezione contiene l'insieme di notifiche e app esenti dal modifica del comportamento delle autorizzazioni alle notifiche. Su Android 13 (livello API 33) o versioni successive: se l'utente nega l'autorizzazione alle notifiche, vedrà comunque le notifiche relative ai servizi in primo piano Task Manager ma non li vedi riquadro a scomparsa delle notifiche.
Sessioni multimediali
Notifiche relative a sessioni multimediali sono da questa modifica del comportamento.
App configurate per la gestione autonoma delle chiamate
Se la tua app si configura per gestire autonomamente le chiamate,
non hanno bisogno dell'autorizzazione POST_NOTIFICATIONS
per inviare la tua app
notifiche che utilizzano
Notification.CallStyle
stile di notifica.
Il sistema ritiene che la tua app sia configurata automaticamente per l'utilizzo dello smartphone se esegue una delle seguenti operazioni:
- Dichiara il
MANAGE_OWN_CALLS
autorizzazione. - Implementa il
ConnectionService
a riga di comando. - Si registra con il provider di telecomunicazioni del dispositivo chiamando
registerPhoneAccount()
Testare l'app
Puoi valutare in che modo l'autorizzazione alle notifiche influisce sulla tua app quando utilizzato per la prima volta su un dispositivo con Android 13 o versioni successive. La persone che seguo di comandi Android Debug Bridge (ADB) consentono simulare le sequenze più comuni di scelte dell'utente e upgrade dei dispositivi senza dover resettare il dispositivo di test:
L'app è stata appena installata su un dispositivo in esecuzione Android 13 o versioni successive:
adb shell pm revoke PACKAGE_NAME android.permission.POST_NOTIFICATIONS
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-set
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-fixed
L'utente mantiene attive le notifiche quando l'app è installata su un dispositivo da 12 litri o meno, Upgrade ad Android 13 o versioni successive:
adb shell pm grant PACKAGE_NAME android.permission.POST_NOTIFICATIONS
adb shell pm set-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-set
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-fixed
L'utente disattiva manualmente le notifiche quando l'app è installata su un dispositivo da 12 litri o meno, Upgrade ad Android 13 o versioni successive:
adb shell pm revoke PACKAGE_NAME android.permission.POST_NOTIFICATIONS
adb shell pm set-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-set
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-fixed
Best practice
Questa sezione descrive i diversi modi in cui puoi utilizzare la nuova notifica in modo più efficace nella tua app.
Aggiorna la versione dell'SDK target della tua app
Per offrire alla tua app maggiore flessibilità riguardo alla visualizzazione della finestra di dialogo di autorizzazione, aggiorna la tua app in modo che abbia come target Android 13 o versioni successive.
Attendi per mostrare la richiesta di autorizzazione alle notifiche
Prima di chiedere agli utenti di concedere autorizzazioni, consenti loro di acquisire familiarità con la tua app.
I nuovi utenti potrebbero voler esplorare l'app e comprendere in prima persona vantaggi di ogni singola richiesta di notifica. Puoi attivare una richiesta relativa alle autorizzazioni da un'azione utente. Il seguente elenco mostra alcuni esempi di casi in cui si tratta di un è il momento giusto per mostrare la richiesta di autorizzazione alle notifiche:
- L'utente tocca la "campanella di avviso". .
- L'utente sceglie di seguire l'account di social media di qualcuno.
- L'utente invia un ordine per la consegna di cibo a domicilio.
La figura 1 mostra un flusso di lavoro consigliato per richiedere la notifica
autorizzazione. A meno che
shouldShowRequestPermissionRationale()
restituisce true
, non è necessario che l'app mostri la schermata centrale, ossia quella che
ha il titolo "Ricevi una notifica!".
In alternativa, puoi impostare una richiesta in modo che venga visualizzata dopo aver dato agli utenti la possibilità di a familiarizzare con la tua app. Ad esempio, potresti attendere la terza o la quarta volta che l'utente avvia la tua app.
shouldShowRequestPermissionRationale()
restituisce true
.
Richiedi l'autorizzazione nel contesto
Quando richiedi l'autorizzazione alle notifiche all'interno della tua app, fallo nell'account corretto contesto, in modo che sia chiaro lo scopo delle notifiche e perché l'utente dovrebbe eseguire l'attivazione. Ad esempio, un'app email potrebbe includere opzioni per Inviare notifiche per ogni nuova email o solo per le email in cui l'utente è l'unico destinatario.
Sfrutta questa opportunità per rendere trasparente le tue intenzioni e gli utenti sono più che conceda l'autorizzazione alle notifiche per la tua app.
Verificare se l'app può inviare notifiche
Prima che l'app invii una notifica, verifica se l'utente l'ha attivata
notifiche per la tua app. A questo scopo, chiama
areNotificationsEnabled()
Utilizza l'autorizzazione in modo responsabile
Dopo aver ricevuto l'approvazione per l'invio di notifiche, ricordati di utilizzare l'autorizzazione in modo responsabile. Gli utenti possono vedere il numero di notifiche giornaliere che la tua app invia e possono revocare l'autorizzazione in qualsiasi momento.