تستخدم الإشعارات في Android 13 نموذج الموافقة، وهو إجراء يختلف عن إصدارات Android السابقة التي تستخدم نموذج إيقاف. في نظام التشغيل Android 13، على جميع التطبيقات أن تطلب من المستخدمين الإذن قبل إرسال طلبات الإشعارات. يساعد هذا النموذج في تقليل انقطاعات الإشعارات، والحدّ من كثرة المعلومات، ومساعدة المستخدمين في التحكّم في الإشعارات التي تظهر لهم استنادًا إلى ما يهمّهم. لإتاحة نموذج الموافقة، على المصنّعين الأصليين للأجهزة تنفيذ التغييرات في أنظمة أذونات وقت التشغيل والإشعارات.
توضّح هذه الصفحة الإجراءات التي يجب أن تتّخذها المصنّعين الأصليّين للأجهزة لتفعيل هذا التغيير وكيفية التحقّق من صحة التنفيذ.
تنفيذ التغييرات على الإشعارات التي تتطلب الموافقة
بدءًا من الإصدار Android 13، يجب أن تفصح التطبيقات عن نيتها
إرسال إشعارات من خلال طلب إذن
تشغيل android.permission.POST_NOTIFICATION
من النظام قبل أن تتمكّن من إرسال الإشعارات.
في نظام التشغيل Android 13 والإصدارات الأحدث، يتم تخزين الإعداد الذي يحدِّد ما إذا كان بإمكان التطبيق إرسال إشعارات إلى المستخدم في نظام الأذونات. قبل الإصدار 13 من Android، كان يتم تخزين هذا الإعداد في نظام الإشعارات. وبالتالي، على المصنّعين الأصليين للأجهزة نقل بيانات الإشعارات الحالية التي تحدد ما إذا كان يُسمح للتطبيق بإرسال إشعارات، من نظام الإشعارات إلى نظام أذونات التشغيل. على المصنّعين الأصليّين للأجهزة أيضًا الاحتفاظ بواجهات برمجة التطبيقات الحالية في نظام الإشعارات الذي يعرض هذه البيانات لمطوّري التطبيقات.
تستند التغييرات في نظامَي الإشعارات والأذونات إلى نموذج الموافقة على سلوك إشعارات المستخدمين، ويتم وصفها في قسم إرشادات التنفيذ.
سلوك إشعارات المستخدمين في نموذج الموافقة
يوضّح الجدول التالي سلوك الإشعارات لإصدارات التطبيقات المختلفة على جهاز يعمل بنظام التشغيل Android 13:
جهاز يعمل بنظام التشغيل Android 13 | التطبيقات التي تستهدف الإصدار 13 من نظام التشغيل Android أو إصدارًا أحدث | التطبيقات التي تستهدف إصدارات أقل من Android 13 |
---|---|---|
عملية تثبيت جديدة | يتم حظر الإشعارات إلى أن يطلب منك التطبيق إعادة تفعيلها.
تتحكم التطبيقات في وقت طلب الإذن. |
يتم حظر الإشعارات إلى أن يطلب منك نظام التشغيل عرضها.
يتم طلب الإذن عند تشغيل التطبيق لأول مرة. |
التطبيق الحالي (ترقية) | يُسمح بظهور الإشعارات إلى أن يطلب التطبيق ذلك.
يتم منح إذن مؤقت إلى أن يطلب التطبيق أول تشغيل مؤهل. |
يُسمح بعرض الإشعارات إلى أن يطلب منك نظام التشغيل ذلك.
يتم منح الإذن المؤقت حتى التشغيل الأول للتطبيق. |
إرشادات التنفيذ
للاطّلاع على مرجع التنفيذ، يُرجى الرجوع إلى خدمة الإشعارات و خدمة الأذونات و خدمة السياسات. لتنفيذ استثناءات لمعالِجي الأذونات التلقائية، يُرجى الاطّلاع على أذونات التشغيل.
أثناء التنفيذ، اتّبِع الإرشادات التالية بشأن سلوك إشعارات المستخدمين في التطبيقات التي تستهدف الإصدار 13 من نظام التشغيل Android أو إصدارات حِزم SDK الأقدم:
- يجب ألا تُرسِل التطبيقات المثبَّتة حديثًا على جهاز Android 13 إشعارًا بدون موافقة المستخدم على طلب الحصول على الإذن.
- إذا كان التطبيق يستهدف الإصدار 13 من Android أو الإصدارات الأحدث، يجب حظر الإشعارات إلى أن يطلب التطبيق ذلك، لأنّ التطبيق هو الذي يتحكم في وقت طلب إذن المستخدم وما إذا كان سيطلبه.
- إذا كان التطبيق يستهدف إصدارات أقدم من Android 13، يجب حظر الإشعارات إلى أن يطلبها نظام التشغيل. ويجب أن يعرض نظام التشغيل طلب الحصول على إذن عند تشغيل التطبيق للمرة الأولى.
يجب السماح لأي تطبيق كان مثبَّتًا على الجهاز قبل الترقية إلى Android 13، أو أي تطبيق تم استعادته من خلال ميزة "الاحتفاظ بنسخة احتياطية" واسترجاعها، بإرسال الإشعارات إلى أن يشغِّل المستخدم نشاطًا من هذا التطبيق لأول مرة.
بالنسبة إلى التطبيقات التي تستهدف حزمة تطوير البرامج (SDK) لإصدارات Android 13 والإصدارات الأحدث، إذا لم يخصِّص المستخدم في السابق إعدادات الإشعارات لهذا التطبيق على مستوى التطبيق أو
NotificationChannel
، يجب إبطال منح الإذن المؤقت. يجب أن تطلب التطبيقات من المستخدم إذنًا قبل السماح له بمواصلة إرسال الإشعارات.إذا كان التطبيق الذي تم ترقيته لاستهداف Android 13 لا يملك في الوقت الحالي إذن الإشعارات من خلال منح الموافقة على الترقية المؤقتة ، وكان المستخدم قد شغّله مرة واحدة على الأقل، يجب أن يعرض التطبيق طلب إذن الإشعارات قبل السماح له بتشغيل أي خدمات أخرى تعمل في المقدّمة.
بالنسبة إلى التطبيقات التي تستهدِف إصدارات حزمة SDK أقل من Android 13، اعترض إطلاق النشاط الأول بعد أن ينشئ التطبيق
NotificationChannel
واحدًا على الأقل لعرض طلب إذن يسأل المستخدم عما إذا كان يريد تلقّي إشعارات من التطبيق.إذا خصّص أحد المستخدمين إعدادات الإشعارات سابقًا على مستوى التطبيق أو
NotificationChannel
لتطبيق على الجهاز الذي ستتم ترقيته أو في نسخة احتياطية تتم استعادتها على الجهاز، يجب نقل الإعدادات على مستوى التطبيق إلى نظام الأذونات باستخدام العلامةFLAG_PERMISSION_USER_SET
. ولا يجب عرض أي طلب آخر للحصول على إذن إرسال الإشعارات للمستخدم إلا إذا طلب التطبيق ذلك تحديدًا.
يجب أن تكون ميزة "الاحتفاظ بنسخة احتياطية من البيانات واستعادتها" متوافقة مع الإصدارات السابقة واللاحقة من نظام التشغيل بين جهاز Android 13 وجهاز يعمل بإصدار سابق من نظام التشغيل. يجب استعادة البيانات الاحتياطية التي تم إنشاؤها من جهاز يعمل بنظام التشغيل Android 13 على إصدار أقدم من نظام التشغيل، ويجب استعادة البيانات الاحتياطية من إصدار أقدم من نظام التشغيل على جهاز يعمل بنظام التشغيل Android 13.
يجب أن تكون إشعارات الوسائط المرتبطة بتشغيل الوسائط الجارية معفاة من إذن الإشعارات.
التحقّق من صحة التغييرات في نظامَي الإشعارات والأذونات
للتحقّق من صحة التنفيذ، يمكنك إجراء الاختبارات التالية:
اختبارات الوحدة على النحو المحدّد في
PreferencesHelperTest
،NotificationManagerServiceTest
أي اختبار يدوي يختبر عمليات الترقية والنسخ الاحتياطي والاستعادة
أي اختبار لنظام أذونات ورسائل CTS يُرسِل إشعارات يمكن العثور على بعض هذه الاختبارات في cts/tests/tests/permission/ وNotificationManagerTest.java وcts/tests/tests/notificationlegacy/.