عرض الإشعارات الحساسة للوقت

قد يحتاج تطبيقك إلى جذب انتباه المستخدم بشكل عاجل في مواقف معيّنة، مثل المنبّهات المستمرة أو المكالمات الواردة. في التطبيقات التي تستهدف الأجهزة التي تعمل بالإصدار Android 9 (المستوى 28 لواجهة برمجة التطبيقات) أو الإصدارات الأقدم، يمكنك معالجة ذلك من خلال بدء نشاط عندما يكون التطبيق في الخلفية. يوضّح هذا المستند كيفية تحقيق هذا السلوك على الأجهزة التي تعمل بالإصدارات من Android 10 (المستوى 29 لواجهة برمجة التطبيقات) إلى Android 13 (المستوى 33 لواجهة برمجة التطبيقات).

إضافة إذن POST_NOTIFICATIONS

بدءًا من Android 13، أضِف السطر التالي إلى ملف AndroidManifest.xml:

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

بعد الحصول على هذا الإشعار، يمكنك إنشاء قناة للإشعارات.

إنشاء قناة للإشعارات

أنشئ قناة إشعارات لعرض إشعاراتك بشكل صحيح والسماح للمستخدم بإدارة الإشعارات في إعدادات التطبيق. لمزيد من المعلومات حول قنوات الإشعارات، يُرجى الاطّلاع على مقالة إنشاء قنوات إعلام وإدارتها.

أنشئ قنوات الإشعارات في طريقة onCreate لفئة Application:

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

عندما يشغّل المستخدم تطبيقك للمرة الأولى، سيظهر له شيء مثل الشكل 1 في شاشة نظام معلومات التطبيق في تطبيقك:

صورة تعرض شاشة &quot;معلومات التطبيق&quot; و&quot;الإشعارات&quot; في تطبيقك
الشكل 1. قسم "الإشعارات" في شاشة معلومات التطبيق ضمن إعدادات النظام للتطبيق

إدارة أذونات الإشعارات

بدءًا من Android 13، عليك طلب أذونات الإشعارات قبل عرض الإشعارات للمستخدمين.

يبدو الحد الأدنى لتنفيذ الميزة على النحو التالي:

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

إذا كان جهازك يعمل بنظام التشغيل Android 13، يؤدي النقر على الزر Request permission إلى فتح مربّع الحوار الموضَّح في الشكل 2:

صورة تعرض مربّع حوار طلب الإذن
الشكل 2. مربّع حوار النظام لطلب إذن الإشعارات

إذا وافق المستخدم على طلب الإذن، سيظهر قسم معلومات التطبيق في التطبيق على النحو التالي:

صورة تعرض شاشة &quot;معلومات التطبيق&quot; بعد منح طلب إذن الإشعارات
الشكل 3. تم منح أذونات إرسال الإشعارات.