Zamana duyarlı bildirimleri göster

Uygulamanızın, devam eden bir alarm veya gelen arama gibi belirli durumlarda kullanıcının dikkatini acil olarak çekmesi gerekebilir. Android 9 (API düzeyi 28) veya önceki sürümleri çalıştıran cihazları hedefleyen uygulamalarda, uygulama arka plandayken bir etkinlik başlatarak bu sorunu çözebilirsiniz. Bu belgede, Android 10 (API düzeyi 29) ile Android 13 (API düzeyi 33) arasındaki sürümleri çalıştıran cihazlarda bu davranışın nasıl sağlanacağı gösterilmektedir.

POST_NOTIFICATIONS iznini ekleme

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

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

Bu işlemi tamamladıktan sonra bildirim kanalı oluşturabilirsiniz.

Bildirim kanalı oluşturma

Bildirimlerinizi düzgün bir şekilde görüntülemek ve kullanıcının uygulama ayarlarından bildirimleri yönetmesine izin vermek için bir bildirim kanalı oluşturun. Bildirim kanalları hakkında daha fazla bilgi için Bildirim kanalları oluşturma ve yönetme başlıklı makaleyi inceleyin.

Bildirim kanallarınızı Application sınıfınızın onCreate yönteminde oluşturun:

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 Bilgileri, Bildirim ekranını gösteren bir resim.
Şekil 1. Uygulamanın sistem ayarlarındaki Uygulama Bilgileri ekranındaki Bildirimler bölümünden

Bildirim izinlerini yönetme

Android 13'ten itibaren, kullanıcılara bildirim göstermeden önce bildirim izinleri isteyin.

Minimum uygulama şu şekilde 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ızda Android 13 yüklüyse Request permission düğmesine dokunduğunuzda Şekil 2'de gösterilen iletişim kutusu açılır:

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

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

Bildirimi kullanıcıya gösterme

showNotification() işlevi çağrıldığında bildirim aşağıdaki şekilde tetiklenir:

Kotlin

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

Bu örnekteki bildirim 4. resme benzer:

Yüksek öncelikli bir bildirimi gösteren resim
Şekil 4. Yüksek öncelikli bir bildirim.

Devam eden bildirim

Bildiriminizi kullanıcıya gösterdiğinizde kullanıcı, uygulamanızın uyarısını veya hatırlatıcısını kabul edebilir ya da reddedebilir. Örneğin, kullanıcı gelen bir telefon aramasını kabul edebilir veya reddedebilir.

Bildiriminiz devam eden bir bildirimse (ör. gelen telefon araması) bildirimi bir ön plan hizmetiyle ilişkilendirin. Aşağıdaki kod snippet'inde, ön plan hizmetiyle ilişkili bir bildirimin nasıl görüntüleneceği gösterilmektedir:

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