يتوافق Android 13 (المستوى 33) والإصدارات الأحدث مع
إذن التشغيل لإرسال
إشعارات غير المستثناة (بما في ذلك إشعارات الخدمات التي تعمل في المقدّمة (FGS)
من التطبيق:
POST_NOTIFICATIONS
يساعد هذا التغيير المستخدمين في التركيز على الإشعارات الأكثر أهمية
معهم.
ننصحك بشدة باستهداف الإصدار 13 من Android أو الإصدارات الأحدث في أقرب وقت ممكن للاستفادة من عناصر التحكّم الإضافية والمرونة التي تقدّمها هذه الميزة. في حال مواصلة استهداف الإصدار 12L (المستوى 32 لواجهة برمجة التطبيقات) أو إصدار أقدم، ستفقد بعض المرونة في طلب الإذن في سياق وظائف تطبيقك.
الإفصاح عن الإذن
لطلب إذن إرسال الإشعارات الجديد من تطبيقك، حدِّث التطبيق إلى استهداف Android 13 وإكمال عملية مشابهة مقارنةً طلب أذونات أخرى لوقت التشغيل، مثل كما هو موضح في الأقسام التالية.
يظهر الإذن الذي يجب الإفصاح عنه في ملف بيان تطبيقك في مقتطف الرمز البرمجي التالي:
<manifest ...> <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> <application ...> ... </application> </manifest>
تعتمد إمكانات التطبيق على اختيار المستخدم في مربّع حوار الأذونات
في مربّع الحوار هذا، تتوفّر للمستخدمين الإجراءات التالية:
- اختيار السماح
- اختَر عدم السماح.
- مرِّر سريعًا للخارج من مربّع الحوار، بدون الضغط على أي من الزرَّين
توضّح الأقسام التالية سلوك تطبيقك، استنادًا إلى الإجراء الذي يستغرقه المستخدم.
يختار المستخدم "السماح".
إذا اختار المستخدم الخيار السماح، يمكن لتطبيقك تنفيذ ما يلي:
- إرسال إشعارات يُسمح باستخدام جميع قنوات الإشعارات .
- نشر إشعارات بشأن المقدّمة . تظهر هذه الإشعارات في درج الإشعارات.
يختار المستخدم "عدم السماح".
إذا اختار المستخدم الخيار عدم السماح، لن يتمكّن تطبيقك من إرسال رسائل ليقظة ما لم يكن مؤهلاً للحصول على إعفاء. الكل يتم حظر قنوات الإشعارات، باستثناء بعض القنوات الأدوار. ويُعد هذا مشابهًا للسلوك الذي يحدث عندما يحول المستخدم يدويًا إيقاف كل الإشعارات لتطبيقك في إعدادات النظام.
تحذير: إذا كان تطبيقك يستهدف الإصدار 12L أو إصدارًا أقل، وانقر المستخدم على عدم السماح، حتى ولو مرة واحدة، لن يُطلب منه الموافقة مرة أخرى إلى أن يحدث أحد الإجراءَين التاليَين:
- يُلغي المستخدم تثبيت تطبيقك ويُعيد تثبيته.
- يجب تحديث تطبيقك لاستهداف الإصدار 13 من نظام التشغيل Android أو الإصدارات الأحدث.
مرّر المستخدم سريعًا للخروج من مربّع الحوار.
إذا مرّر المستخدم سريعًا للخروج من مربّع الحوار، أي لم يختار السماح أو عدم السماح، لن تتغيّر حالة إذن الإشعارات.
التأثيرات على التطبيقات المثبَّتة حديثًا
إذا ثبَّت أحد المستخدمين تطبيقك على جهاز يعمل بنظام Android 13 أو إصدار أحدث، سيتم إيقاف إشعارات تطبيقك تلقائيًا. يجب أن ينتظر التطبيق إلى إرسال الإشعارات إلا بعد طلب الإذن الجديد ومطالبة المستخدم يمنح تطبيقك هذا الإذن.
يستند الوقت الذي يظهر فيه مربّع حوار الأذونات إلى إصدار حزمة SDK المستهدَف لتطبيقك:
- إذا كان تطبيقك يستهدف الإصدار 13 من نظام التشغيل Android أو الإصدارات الأحدث، يعني ذلك أنّ تطبيقك قد اكتمل. التحكم في وقت عرض مربع حوار الأذونات. استخدِم هذه الفرصة لشرح سبب احتياج التطبيق إلى هذا الإذن، وتشجيعهم على منحه.
- إذا كان تطبيقك يستهدف 12L (المستوى 32 لواجهة برمجة التطبيقات) أو أقل، سيعرض النظام واجهة برمجة التطبيقات. مربّع حوار الأذونات في المرة الأولى التي يبدأ فيها تطبيقك نشاطًا بعد إنشاء قناة للإشعارات، أو عندما يبدأ التطبيق نشاطًا ثم يُنشئ أوّل قناة إشعارات له. هذا النمط عادة عند بدء تشغيل التطبيق.
التأثيرات في تحديثات التطبيقات الحالية
للحدّ من الانقطاعات المرتبطة بإذن الإشعارات، منح التلقائي للإذن لجميع التطبيقات المؤهّلة عندما يُجري المستخدم ترقية لجهازه إلى Android 13 أو إصدار أحدث بعبارة أخرى، يمكن لهذه التطبيقات مواصلة إرسال إشعارات إلى المستخدمين، ولا تظهر للمستخدمين رسالة طلب إذن التشغيل.
الأهلية للحصول على الإذن مسبقًا
لكي يكون تطبيقك مؤهَّلاً للحصول على مِنح مسبقة تلقائية، يجب أن يتضمّن قناة إشعارات حالية وعدم إيقاف إشعاراتها بشكل صريح المستخدم على جهاز يعمل بسعة 12 لتر أو أقل
إذا أوقف المستخدم إشعارات تطبيقك على جهاز يعمل بالإصدار 12L أو إصدار أقدم، سيستمر هذا الرفض عند ترقية الجهاز إلى الإصدار 13 من Android أو إصدار أحدث.
الإعفاءات
يحتوي هذا القسم على مجموعة من الإشعارات والتطبيقات المستثناة من تغيير في سلوك إذن إرسال الإشعارات في الإصدار 13 من نظام التشغيل Android (المستوى 33 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث، إذا رفض المستخدم إذن الإشعارات، سيظل بإمكانه الاطّلاع على الإشعارات المتعلّقة بالخدمات التي تعمل في المقدّمة في مدير المهام ولكن لن تظهر له في درج الإشعارات.
جلسات الوسائط
الإشعارات ذات الصلة بـ جلسات الوسائط هي والإعفاء من هذا التغيير في السلوك.
التطبيقات التي تم ضبطها لإدارة المكالمات الهاتفية ذاتيًا
إذا كان تطبيقك يضبط نفسه لإدارة المكالمات الهاتفية بنفسه، لن تحتاج
إلى إذن POST_NOTIFICATIONS
لكي يرسل تطبيقك
إشعارات تستخدِم أسلوب الإشعار
Notification.CallStyle
.
يعتبر النظام أنّ تطبيقك قد أعدّ نفسه لإدارة المكالمات الهاتفية بنفسه إذا كان ينفّذ كلّ ما يلي:
- يعلِن
MANAGE_OWN_CALLS
إذن. - تنفيذ واجهة
ConnectionService
- يتم التسجيل لدى مقدِّم خدمات الاتصالات الخاص بالجهاز من خلال الاتصال
registerPhoneAccount()
اختبار تطبيقك
يمكنك تقييم مدى تأثير إذن الإشعارات في تطبيقك عند استخدامه لأول مرة على جهاز يعمل بنظام التشغيل Android 13 أو إصدار أحدث. تشير رسالة الأشكال البيانية يتابع تسمح مجموعات أوامر Android Debug Bridge (ADB) بالأمر لمحاكاة التسلسلات الأكثر شيوعًا لخيارات المستخدمين وترقيات الأجهزة بدون الحاجة إلى إعادة ضبط جهاز الاختبار:
تم تثبيت التطبيق مؤخرًا على جهاز يعمل الإصدار 13 من نظام التشغيل Android أو الإصدارات الأحدث:
adb shell pm revoke PACKAGE_NAME android.permission.POST_NOTIFICATIONS
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-set
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-fixed
يحافظ المستخدم على تفعيل الإشعارات عند تثبيت التطبيق على جهاز يعمل بسعة 12 لتر أو أقل، ثم الترقيات إلى Android 13 أو الإصدارات الأحدث:
adb shell pm grant PACKAGE_NAME android.permission.POST_NOTIFICATIONS
adb shell pm set-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-set
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-fixed
أوقف المستخدم الإشعارات يدويًا عند تثبيت التطبيق على جهاز يعمل بالإصدار 12L أو إصدار أقدم، ثم تمت ترقية الجهاز إلى Android 13 أو إصدار أحدث:
adb shell pm revoke PACKAGE_NAME android.permission.POST_NOTIFICATIONS
adb shell pm set-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-set
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-fixed
أفضل الممارسات
يوضّح هذا القسم عدة طرق يمكنك من خلالها استخدام الإشعار الجديد. الأكثر فعالية في تطبيقك.
تعديل إصدار حزمة تطوير البرامج (SDK) المستهدَف لتطبيقك
لمنح تطبيقك مزيدًا من المرونة في تحديد وقت ظهور مربّع حوار الأذونات، حدِّث تطبيقك ليستهدف الإصدار 13 من نظام التشغيل Android أو إصدارًا أحدث.
الانتظار لعرض طلب إذن إرسال الإشعارات
قبل أن تطلب من المستخدمين منح أي أذونات، امنحهم الوقت للتعرّف على تطبيقك.
قد يرغب المستخدمون الجدد في استكشاف التطبيق وإدراك وفوائد كل طلب إشعار فردي. يمكنك تشغيل طلب الأذونات من إجراء المستخدم. توضح القائمة التالية عدة أمثلة على متى يكون الوقت المناسب لعرض طلب الحصول على إذن إرسال الإشعارات:
- ينقر المستخدم على "جرس تنبيه" .
- يختار المستخدم متابعة حساب شخص ما على وسائل التواصل الاجتماعي.
- يرسل المستخدم طلبًا لتوصيل الطعام.
يعرض الشكل 1 سير عمل مقترَحًا لطلب إذن إرسال الإشعارات. ما لم يعرض shouldShowRequestPermissionRationale()
true
، لا يحتاج تطبيقك إلى عرض الشاشة الوسطى التي يضمّن عنوانها النص "تلقّي إشعارات".
بدلاً من ذلك، يمكنك ضبط طلب ليظهر بعد أن تمنح المستخدمين فرصة للتعلّم عن تطبيقك. على سبيل المثال، يمكنك الانتظار إلى المرة الثالثة أو الرابعة التي يشغّل فيها المستخدم تطبيقك.
shouldShowRequestPermissionRationale()
تعرِض true
.
طلب الإذن حسب السياق
عند طلب أذونات إرسال الإشعارات داخل تطبيقك، عليك إجراء ذلك في السياق، لكي يتضح بوضوح الغرض من استخدام الإشعارات السبب الذي يدفع المستخدم إلى الموافقة على سبيل المثال، قد يتضمّن تطبيق البريد الإلكتروني خيارات لتلقّي إشعارات عند وصول كل رسالة إلكترونية جديدة، أو عند وصول الرسائل الإلكترونية التي يكون فيها المستخدم هو المُستلِم الوحيد.
استخدِم هذه الفرصة لإظهار شفافية نواياك، ومن المرجّح أن يمنح المستخدمون إذن الإشعارات لتطبيقك.
التحقّق مما إذا كان بإمكان تطبيقك إرسال إشعارات
قبل أن يرسل تطبيقك إشعارًا، تأكَّد مما إذا كان المستخدم قد فعّله.
الخاصة بتطبيقك. لإجراء ذلك، اتصل
areNotificationsEnabled()
استخدام الإذن بمسؤولية
بعد الحصول على موافقة لإرسال الإشعارات، احرص على استخدام الإذن بمسؤولية. يمكن للمستخدمين الاطّلاع على عدد الإشعارات اليومية التي يُرسِلها تطبيقك، ويمكنهم أيضًا إلغاء الإذن في أي وقت.