إذن الإشعارات أثناء التشغيل
اطلب إذن الإشعارات على Android 13 فأحدث
إذن الإشعارات أثناء التشغيل درس مجاني في Android Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Android Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Android Academy 4 دروس في المجموع.
إذن الإشعارات
بدءًا من Android 13 (API 33)، يجب أن تطلب التطبيقات إذن وقت تشغيل لنشر الإشعارات: POST_NOTIFICATIONS. ومن دونه، تُحظر إشعاراتك بصمت.
سبب إضافته
قبل Android 13، كانت الإشعارات مفعّلة تلقائيًا، وكان يتعين على المستخدمين التعمق في الإعدادات لكتم التطبيقات المزعجة. أما الآن، فقد تغيّر الوضع مع إذن وقت التشغيل: يختار المستخدمون التفعيل صراحةً، مما يقلّل الرسائل المزعجة.
التصريح عنه في البيان
أعلن عن الإذن أولًا في AndroidManifest.xml. وهذا مطلوب في كل إصدار مدعوم، رغم أن الطلب لا يظهر إلا في API 33 والإصدارات الأحدث.
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />إنه إذن خطير
يُصنّف POST_NOTIFICATIONS على أنه إذن وقت تشغيل (خطير)، ولذلك يجب في Android 13 والإصدارات الأحدث أن تطلبه من المستخدم وتعالج رده، كما تفعل مع إذني الكاميرا والموقع.
السلوك حسب الإصدار
تُعدّ الاختلافات بين الإصدارات مهمة:
- API 33 والإصدارات الأحدث: يجب طلب الإذن في وقت التشغيل؛ ويعني رفضه عدم إرسال الإشعارات
- API 32 والإصدارات الأقدم: تُسمح الإشعارات تلقائيًا؛ ولا حاجة إلى عرض طلب
التحقق قبل الطلب
لا تطلب الإذن إلا في Android 13 والإصدارات الأحدث، وفقط إذا لم يكن ممنوحًا مسبقًا. احمِ الاستدعاء باستخدام التحقق من الإصدار.
val needsRequest = Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU &&
ContextCompat.checkSelfPermission(
context, Manifest.permission.POST_NOTIFICATIONS
) != PackageManager.PERMISSION_GRANTEDالطلب في Compose
استخدم Activity Result API نفسها التي تعلمتها لأذونات أخرى: مشغّلًا مع عقد RequestPermission، ثم شغّله باستخدام POST_NOTIFICATIONS.
val launcher = rememberLauncherForActivityResult(
ActivityResultContracts.RequestPermission()
) { granted ->
// update UI based on whether notifications are allowed
}تشغيل الطلب
شغّل الطلب فقط في API 33 والإصدارات الأحدث، ويفضّل أن يكون ذلك عندما ينفّذ المستخدم إجراءً يستفيد من الإشعارات، لا بشكل عشوائي عند تشغيل التطبيق.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
launcher.launch(Manifest.permission.POST_NOTIFICATIONS)
}الطلب في السياق المناسب
كما هو الحال مع جميع الأذونات، اطلب الإذن في السياق المناسب. فعلى سبيل المثال، اطلبه بعد أن يفعّل المستخدم ميزةً مثل التذكيرات، مع توضيح فائدتها، بدلًا من طلبه لحظة فتح التطبيق.
معالجة الرفض بسلاسة
إذا رفض المستخدم الإذن، فلا تجعل التطبيق يتعطل. عطّل مفاتيح التبديل التي تعتمد على الإشعارات، أو اعرض تلميحًا يوضح أن الإشعارات متوقفة، مع توفير رابط إلى إعدادات النظام إذا أراد المستخدم تفعيلها لاحقًا.
يؤدي SDK المستهدف إلى فرض المتطلبات
يسري شرط وقت التشغيل عندما يستهدف تطبيقك API 33 أو إصدارًا أحدث. وإذا شُغّل تطبيق أقدم على Android 13، فقد يعرض النظام الطلب تلقائيًا عند النشر الأول، لكن ينبغي لك مع ذلك طلب الإذن صراحةً.
اختبار سريع
اختبر مدى فهمك لإذن وقت تشغيل الإشعارات.
مراجعة
لقد عالجت إذن الإشعارات:
- يتطلب Android 13 والإصدارات الأحدث إذن وقت التشغيل
POST_NOTIFICATIONS - أعلن عنه في البيان واطلبه باستخدام Activity Result API
- احمِ الطلبات بالتحقق من الإصدار واطلب الإذن في السياق المناسب
- تعامل بسلاسة مع حالة الرفض
لقد أنهيت دورة الإشعارات.
الأسئلة الشائعة
هل درس «إذن الإشعارات أثناء التشغيل» مجاني؟
نعم — نص درس «إذن الإشعارات أثناء التشغيل» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Android Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Android Academy 4 دروس في المجموع.
ماذا ستتعلم في «إذن الإشعارات أثناء التشغيل»؟
اطلب إذن الإشعارات على Android 13 فأحدث تتمرن على Android Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Android Academy؟
لا تُشترط خبرة سابقة. Android Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «إذن الإشعارات أثناء التشغيل»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Android Academy هذا؟
نعم. كل درس في Android Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- قنوات الإشعارات
- إنشاء إشعار
- الإجراءات والروابط العميقة
- إذن الإشعارات أثناء التشغيل