Zamana duyarlı bildirimleri göster

Devam eden alarm veya gelen arama gibi belirli durumlarda uygulamanızın, kullanıcının dikkatini acilen ç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 bunu başarabilirsiniz. Bu dokümanda, 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 gerçekleştirileceği gösterilmektedir.

POST_STATES iznini ekleyin

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>

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ının bildirimleri uygulama ayarlarından yönetmesine izin verin. Bildirim kanalları hakkında daha fazla bilgi için Bildirim kanalları oluşturma ve yönetme konusuna bakın.

Application sınıfınızın onCreate yönteminde bildirim kanallarınızı 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 1. şekil gibi bir şey görür:

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

Bildirim izinlerini yönet

Android 13 sürümünden itibaren, kullanıcılara bildirim göstermeden önce bildirim izinleri isteyin.

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 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'e benzer:

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, uygulamanızın uyarısını veya hatırlatıcısını onaylayabilir ya da kapatabilir. Örneğin, kullanıcı gelen bir telefon aramasını kabul edebilir veya reddedebilir.

Bildiriminiz, gelen telefon araması gibi devam eden bir bildirimse bildirimi bir ön plan hizmetiyle ilişkilendirin. Aşağıdaki kod snippet'i, bir ön plan hizmetiyle ilişkili bir 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);