Zamana duyarlı bildirimleri göster

Uygulamanızın bazı durumlarda kullanıcının dikkatini acilen çekmesi gerekebilir, devam eden bir alarm veya gelen arama gibi. Şu özelliklere sahip cihazları hedefleyen uygulamalarda Android 9 (API düzeyi 28) veya önceki sürümlerde ise bu sorunu çözmek için en az bir haftalık etkinlik olup olmadığını kontrol edin. Bu belgede, Çevik yaklaşımın bu davranışı, Android 10 (API düzeyi 29) çalıştıran cihazlarda Android 13 (API düzeyi 33).

POST_STATES iznini ekleyin

Android 13'ten itibaren aşağıdaki satırı AndroidManifest.xml dosyası:

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

Bunu yaptıktan sonra bir bildirim kanalı oluşturabilirsiniz.

Bildirim kanalı oluşturma

Bildirimlerinizi düzgün bir şekilde görüntülemek için bir bildirim kanalı oluşturun ve kullanıcı, bildirimleri uygulama ayarlarından yönetebilir. Daha fazla bilgi için bildirim kanalları için Bildirim oluşturma ve yönetme kanalları görebilirsiniz.

Bildirim kanallarınızı, Application sınıfınızda oluşturun onCreate yöntemi:

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)
    }
}

Kullanıcı uygulamanızı ilk kez çalıştırdığında, uygulamanızın Uygulama bilgileri sistem ekranında Şekil 1'e benzer bir mesaj görür:

Uygulamanızın Uygulama Bilgisi, Bildirim ekranını gösteren resim.
Şekil 1. Uygulama'nın Bildirimler bölümü Uygulamanın sistem ayarlarının Bilgi ekranı.

Bildirim izinlerini yönet

Android 13 sürümünden itibaren, bildirim izinlerini şu tarihten önce isteyin kullanıcılara bildirim göstermenizi sağlar.

Minimum uygulama aşağıdaki gibi görünür:

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")
}

Cihazınız Android 13 çalıştırıyorsa Request permission düğmesine dokunduğunuzda, Şekil 2'de gösterilen iletişim kutusu tetiklenir:

İzin isteği iletişim kutusunu gösteren resim
Şekil 2. Bildirim için sistem iletişim kutusu izin isteği.

Kullanıcı izin isteğini kabul ederse uygulamanın Uygulama bilgileri bölümü Şekil 3'teki gibi görünür:

Bildirim izni isteği gönderildikten sonra Uygulama Bilgileri ekranını gösteren resim
Şekil 3. Bildirim izinleri verildi.

Yüksek öncelikli bildirim oluşturma

Bildirimi oluştururken açıklayıcı bir başlık ve mesaj ekleyin.

Aşağıdaki örnekte bir bildirim yer almaktadır:

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())
}

Kullanıcıya bildirimi gösterme

showNotification() işlevinin çağrılması, bildirimi şu şekilde tetikler:

Kotlin

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

Bu örnekteki bildirim Şekil 4'e benzer:

Yüksek öncelikli bildirimin gösterildiği resim
Şekil 4. Yüksek öncelikli bildirim.

Devam eden bildirim

Bildiriminizi kullanıcıya gösterdiğinizde, bildirimi onaylayabilir veya kapatabilir otomatik hatırlatmalar gönderebilirsiniz. Örneğin, kullanıcı bir gelen telefon araması.

Bildiriminiz devam eden bir işlemse (örneğin, gelen bir telefon araması) bildirimi bir ön plan ile hizmet. Aşağıdaki kod snippet'i Bir ön plan hizmetiyle ilişkili bildirimin nasıl görüntüleneceğini gösterir:

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);