Mostra notifiche urgenti

La tua app potrebbe dover attirare urgentemente l'attenzione dell'utente in determinate situazioni. ad esempio una sveglia in corso o una chiamata in arrivo. Nelle app che hanno come target i dispositivi che eseguono Android 9 (livello API 28) o versioni precedenti, per risolvere il problema puoi avviare un dell'attività mentre l'app è in background. Questo documento mostra come ottenere questo comportamento sui dispositivi con Android 10 (livello API 29) per Android 13 (livello API 33).

Aggiungi l'autorizzazione POST_NOTIFICATIONS

A partire da Android 13, aggiungi la seguente riga al tuo File AndroidManifest.xml:

<manifest ...>
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
    <application ...>
        ...
    </application>
</manifest>

Dopodiché, puoi creare un canale di notifica.

Creare un canale di notifica

Crea un canale di notifica per visualizzare correttamente le notifiche e consenti l'utente gestisce le notifiche nelle impostazioni dell'app. Per ulteriori informazioni canali di notifica, consulta Creare e gestire le notifiche canali di YouTube.

Crea i tuoi canali di notifica nel corso del tuo Application Metodo onCreate:

Kotlin

class DACapp : Application() {
    override fun onCreate() {
        super.onCreate()
        val channel = NotificationChannel(
            CHANNEL_ID,
            "High priority notifications",
            NotificationManager.IMPORTANCE_HIGH
        )

        val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
        notificationManager.createNotificationChannel(channel)
    }
}

Quando l'utente esegue l'app per la prima volta, vede qualcosa come la figura 1 Nella schermata di sistema Informazioni app dell'app:

Un&#39;immagine che mostra la schermata Informazioni app, Notifica della tua app.
. Figura 1. Notifiche nell'app App Schermata delle informazioni delle impostazioni di sistema dell'app.

Gestisci autorizzazioni alle notifiche

A partire da Android 13, richiedi le autorizzazioni alle notifiche prima del giorno di mostrare le notifiche agli utenti.

L'implementazione minima è simile alla seguente:

Kotlin

val permissionLauncher = rememberLauncherForActivityResult(
    contract = ActivityResultContracts.RequestPermission(),
    onResult = { hasNotificationPermission = it }
)
...
Button(
    onClick = {
        if (!hasNotificationPermission) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
                permissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS)
            }
        }
    },
) {
    Text(text = "Request permission")
}

Se sul tuo dispositivo è installato Android 13, toccando il pulsante Request permission viene attivata la finestra di dialogo mostrata nella figura 2:

Un&#39;immagine che mostra la finestra di dialogo per la richiesta di autorizzazione
. Figura 2. Finestra di dialogo di sistema per la notifica richiesta di autorizzazione.

Se l'utente accetta la richiesta di autorizzazione, viene visualizzata la sezione Informazioni app dell'app. come la figura 3:

Un&#39;immagine che mostra la schermata Informazioni app dopo aver concesso l&#39;autorizzazione alle notifiche
. Figura 3. Autorizzazioni alle notifiche concesse.
di Gemini Advanced.
.

Creare una notifica ad alta priorità

Quando crei la notifica, includi un titolo e un messaggio descrittivi.

L'esempio seguente contiene una notifica:

Kotlin

private fun showNotification() {
    val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager

    val notificationBuilder =
        NotificationCompat.Builder(this, CHANNEL_ID)
            .setSmallIcon(R.drawable.baseline_auto_awesome_24)
            .setContentTitle("HIGH PRIORITY")
            .setContentText("Check this dog puppy video NOW!")
            .setPriority(NotificationCompat.PRIORITY_HIGH)
            .setCategory(NotificationCompat.CATEGORY_RECOMMENDATION)

    notificationManager.notify(666, notificationBuilder.build())
}

Mostra la notifica all'utente

La chiamata della funzione showNotification() attiva la notifica nel seguente modo:

Kotlin

Button(onClick = { showNotification() }) {
    Text(text = "Show notification")
}

La notifica in questo esempio è simile alla figura 4:

Un&#39;immagine che mostra una notifica ad alta priorità
. Figura 4. Una notifica ad alta priorità.

Notifica continua

Quando mostri la notifica all'utente, quest'ultimo può confermarla o ignorarla l'avviso o il promemoria dell'app. Ad esempio, l'utente può accettare o rifiutare un telefonata in arrivo.

Se la notifica è in corso, ad esempio una telefonata, associare la notifica a un primo piano Google Cloud. Il seguente snippet di codice mostra come visualizzare una notifica associata a un servizio in primo piano:

Kotlin

// Provide a unique integer for the "notificationId" of each notification.
startForeground(notificationId, notification)

Java

// Provide a unique integer for the "notificationId" of each notification.
startForeground(notificationId, notification);