الإشعارات على نظام التشغيل Android Automotive

تزوّد الإشعارات السائقين بمعلومات قصيرة وفي الوقت المناسب عن الأحداث من تطبيقك أثناء عدم استخدامه. يمكن أن تظهر الإشعارات في مركز الإشعارات، ويمكن أيضًا أن تظهر بعض الإشعارات على الشاشة في شكل تنبيهات. لإنشاء إشعارات لنظام التشغيل Android Automotive، يمكنك استخدام واجهة برمجة التطبيقات NotificationBuilder نفسها التي تستخدمها للأجهزة الأخرى. ومع ذلك، للمساعدة في ضمان سلامة السائقين و تقليل مصادر التشتيت، يتم تقييد بعض طرق واجهة برمجة التطبيقات والفئات أو تتصرف بشكل مختلف.

اختلاف الإشعارات في السيارات

لإنشاء بيئة قيادة آمنة وخالية من مصادر التشتيت، تختلف الإشعارات على نظام التشغيل Android Automotive عن الإشعارات على الأجهزة الأخرى بالطرق التالية:

  • تفاعل مبسّط مع المستخدم
  • قيود على تجربة المستخدم استنادًا إلى حالة القيادة

تفاعل مبسّط مع المستخدم

للمساعدة في ضمان تركيز السائقين على الطريق، تتضمّن الإشعارات في السيارة نموذج تفاعل مبسّطًا مع المستخدم يتضمّن الميزات التالية:

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

يضيف نظام التشغيل Android Automotive تلقائيًا زرَّي تشغيل وكتم إلى جميع إشعارات المراسلة المتوافقة مع السيارة.

  • تشغيل: يقرأ الإشعار للسائق باستخدام المساعد الرقمي التلقائي للمستخدم، مثل Gemini أو "مساعد Google"، أو نظام تحويل النص إلى كلام التلقائي في السيارة.
  • كتم: يمنع ظهور التنبيهات لأي رسائل مستقبلية في المحادثة طوال الفترة المتبقية من القيادة. تستمر إشعارات الرسائل من محادثة تم كتم صوتها في الظهور في "مركز الإشعارات"، ويمكن للسائق أيضًا إلغاء كتم صوت المحادثة من "مركز الإشعارات".

خيارات عرض الإشعارات المبسّطة

RemoteViews وعروض المحتوى المخصّصة غير متاحة. بالإضافة إلى ذلك، لا تتوافق أنماط الإشعارات التالية:

إذا أرسل تطبيقك إشعارًا إلى نظام التشغيل Android Automotive باستخدام أحد أنماط الإشعارات هذه، لن يظهر سوى نص الملخّص.

إدارة قنوات الإشعارات المبسّطة

لا يتيح نظام التشغيل Android Automotive قنوات الإشعارات وعناصر واجهة المستخدم ذات الصلة، وذلك لتقليل انتشار مهام الإدارة المتقدّمة في أجهزة Automotive.

قيود على تجربة المستخدم استنادًا إلى حالة القيادة

يتضمّن نظام التشغيل Android Automotive محرّكًا للقيود على تجربة المستخدم. يمكن لمصنّعي السيارات استخدام هذا المحرّك لفرض قيود على الإشعارات استنادًا إلى حالة قيادة السيارة بالطرق التالية:

  • اقتطاع سلاسل الإشعارات عند طول معيّن للأحرف
  • إخفاء ملخّصات الرسائل لإشعارات CATEGORY_MESSAGE
  • الحدّ من عدد الإشعارات التي يمكن أن يعرضها "مركز الإشعارات"

أنواع الموارد المتوافقة

يتيح نظام التشغيل Android Automotive تلقائيًا مجموعة فرعية محدودة من أنواع الموارد التي يمكن استخدامها للإشعارات على الأجهزة الأخرى. تتضمّن هذه المجموعة الفرعية أنواع الموارد التالية:

  • العناصر القابلة للرسم
  • الرموز
  • الصور

متطلبات التوافق لإشعارات المراسلة

لتقديم تجربة مستخدم متّسقة ومشتّتة للانتباه بأقل قدر ممكن، تتضمّن إشعارات المراسلة متطلبات خاصة على نظام التشغيل Android Automotive.

يكون إشعار المراسلة متوافقًا مع السيارة إذا استوفى المتطلبات التالية:

  • ينتمي إلى فئة CATEGORY_MESSAGE.
  • يستخدم نمط Notification.MessagingStyle.
  • لا يتضمّن سوى الرسائل غير المقروءة.
  • يتضمّن "وضع علامة كمقروءة" Action يستوفي المتطلبات التالية:

    • تم ضبط الإجراء الدلالي على Action.SEMANTIC_ACTION_MARK_AS_READ.
    • يشير Action إلى أنّه لا يعرض أي واجهة مستخدم عند تنفيذه.
  • إذا كان الإشعار يتضمّن Action "رد"، يجب أن يستوفي Action المتطلبات التالية:

    • تم ضبط الإجراء الدلالي على Action.SEMANTIC_ACTION_REPLY.
    • يشير Action إلى أنّه لا يعرض أي واجهة مستخدم عند تنفيذه.
    • يحتوي Action على RemoteInput واحد.

مركز الإشعارات

تظهر كل الإشعارات تقريبًا في "مركز الإشعارات"، حتى إذا تم أيضًا عرض هذه الإشعارات كتنبيهات. تظل الإشعارات في "مركز الإشعارات" طوال مدة القيادة.

يمكن للسائقين التفاعل مع الإشعارات في "مركز الإشعارات". اعتمادًا على الشركة المصنّعة للسيارة، يمكن للسائقين الوصول إلى "مركز الإشعارات" بإحدى الطريقتَين التاليتَين أو كلتيهما:

  • التمرير سريعًا من أعلى الشاشة إلى أسفلها، على غرار لوحة الإشعارات على الأجهزة الأخرى.
  • النقر على زر في واجهة النظام.

الإشعارات المُجمّعة

يتم تلقائيًا تجميع الإشعارات ذات الصلة في "مركز الإشعارات" ، كما هو الحال في لوحة الإشعارات على الأجهزة الأخرى. ومع ذلك، عندما ينقر السائق على الملخّص لمجموعة في "مركز الإشعارات"، يتم توسيع المجموعة لعرض جميع إشعاراتها بدلاً من تشغيل PendingIntent.

الإشعارات التي لا تظهر في "مركز الإشعارات"

لا تظهر الإشعارات التالية في "مركز الإشعارات":

  • Media playback إشعارات. يجمع نظام التشغيل Android Automotive معلومات عن تشغيل الوسائط المستمر ويعرضها في مكان مخصّص في واجهة المستخدم. يُرجى العِلم أنّه يجب استدعاء setMediaSession باستخدام رمز غير فارغ لكي يتعرّف النظام على الإشعار على أنّه تشغيل للوسائط.
  • إشعارات الاتجاهات المفصّلة لـ CATEGORY_NAVIGATION.
  • إشعارات الخدمة التي تعمل في المقدّمة للتطبيقات التي تتمتع بامتيازات النظام والتطبيقات التي تم توقيعها باستخدام مفتاح النظام الأساسي والتي يكون مستوى أهميتها أقل من IMPORTANCE_DEFAULT.

تنبيهات

تظهر التنبيهات كبطاقة إشعار أعلى الشاشة. بما أنّ التنبيه يلفت انتباه السائق، لا تعرض تنبيهًا إلا عندما تكون المعلومات مهمة للقيادة وحساسة للوقت وقابلة للتنفيذ. يمكن لفئات معيّنة فقط من الإشعارات عرض تنبيه.

يمكن لمصنّعي السيارات تحديد ما إذا كانوا سيسمحون بظهور التنبيهات أثناء فتح "مركز الإشعارات".

كيفية عرض التطبيقات للتنبيهات

تتضمّن التطبيقات متطلبات مختلفة لعرض تنبيه، وذلك حسب ما إذا كانت تتمتع بامتيازات النظام.

التطبيقات التي تتمتع بامتيازات النظام والتطبيقات التي تم توقيعها باستخدام مفتاح النظام الأساسي
يمكن للتطبيق عرض تنبيه من خلال ضبط مستوى أهمية قناة الإشعارات على IMPORTANCE_HIGH أو أعلى.
جميع التطبيقات الأخرى

يمكن للتطبيق عرض تنبيه من خلال ضبط مستوى أهمية قناة الإشعارات على IMPORTANCE_HIGH أو أعلى والتحقّق من أنّ الإشعار ينتمي إلى إحدى الفئات التالية:

مدة ظهور التنبيه

بعد أن يعرض أحد التطبيقات تنبيهًا، يظهر الإشعار على الفور على شاشة السيارة. إذا لم يتخذ السائق أي إجراء، يتم إغلاق التنبيه تلقائيًا بعد 8 ثوانٍ، باستثناء الحالات التالية:

عند إغلاق تنبيه، يتم إدراج الإشعار في الـ Notification Center، ما لم يكن إشعارًا من فئة CATEGORY_NAVIGATION.

التغييرات والقيود المفروضة على Notification API للسيارات

يلخّص هذا القسم الاختلافات لكل فئة تتصرف فيها Notification API بشكل مختلف أو تتضمّن قيودًا على نظام التشغيل Android Automotive.

Notification.Builder

يصف الجدولان 1 و2 التغييرات والقيود المفروضة على واجهة برمجة التطبيقات في فئة Notification.Builder.

الجدول 1. التغييرات التي طرأت على الطرق العامة لفئة Notification.Builder

الإجراءات العامة التأثير الوصف

addAction()

إجراء لا يؤدي إلى أي نتيجة مشروط يجب أن تضيف إشعارات Notification.MessagingStyle الإجراءات المحدّدة في متطلبات التوافق. لن يتم عرض أي إجراءات إضافية تتم إضافتها كأزرار إشعارات.

createBigContentView()

createContentView()

createHeadsUpContentView()

setContent()

setCustomBigContentView()

setCustomContentView()

setCustomHeadsUpContentView()

إجراء لا يؤدي إلى أي نتيجة RemoteViews ولا تتوافق عروض المحتوى المخصّصة.

setBadgeIconType()

setNumber()

إجراء لا يؤدي إلى أي نتيجة شارات الإشعارات غير متاحة.

setChronometerCountDown()

setUsesChronometer()

إجراء لا يؤدي إلى أي نتيجة مؤقتات العد التنازلي غير متاحة.
setColorized() تم تغيير القيود

التطبيقات الموقَّعة من النظام الأساسي: قابلة للضبط ومسموح بها تلقائيًا.

التطبيقات التي تتمتع بامتيازات النظام: يضبطها النظام الأساسي؛ غير مسموح بها تلقائيًا.

جميع التطبيقات الأخرى: يضبطها النظام الأساسي وغير مسموح بها تلقائيًا.

setFullScreenIntent() تم تغيير السلوك لا يتم تشغيل الهدف تلقائيًا.
setLargeIcon() تم تغيير السلوك تظهر الرموز الكبيرة على الجانب الأيسر من الإشعار.
setLights() إجراء لا يؤدي إلى أي نتيجة لا تتضمّن الأجهزة التي تعمل بنظام التشغيل Android Automotive أضواء مؤشر LED.
setOngoing() تم تغيير السلوك

يختلف السلوك عندما يؤدي الإشعار أيضًا إلى ظهور تنبيه.

setOngoing() لا تجعل التنبيه غير قابل للإغلاق إلا إذا كان التنبيه لمكالمة واردة. لكي يكون الإشعار تنبيهًا لا يمكن إغلاقه لمكالمة واردة، يجب أن يستوفي المتطلبات المحدّدة.

يمكن للسائقين إغلاق جميع الأنواع الأخرى من التنبيهات.

setPublicVersion()

setVisibility()

إجراء لا يؤدي إلى أي نتيجة الوضع الخاص غير متاح.
setSettingsText() إجراء لا يؤدي إلى أي نتيجة لا تتيح الإشعارات عناصر واجهة مستخدم تؤدي إلى إعدادات التطبيق. يمكن للسائقين الوصول إلى إعدادات التطبيق من خلال التطبيق بدلاً من ذلك.
setTicker() إجراء لا يؤدي إلى أي نتيجة لا يتوافق نص شريط التمرير.

الجدول 2. التغييرات التي طرأت على الفئات المضمّنة لفئة Notification.Builder

الفئات المضمّنة التأثير الوصف

Notification.BigPictureStyle

Notification.BigTextStyle

Notification.InboxStyle

لم يتم الاستخدام لا يظهر سوى نص الملخّص. الإشعارات التفصيلية لهذه الأنماط غير متاحة.
Notification.BubbleMetadata لم يتم الاستخدام الفقاعات غير متاحة.
Notification.MediaStyle مخفية يتم إخفاء الإشعارات بهذا النمط. يدير نظام التشغيل Android Automotive تفاعلات واجهة المستخدم لإشعارات الوسائط وتشغيلها.
Notification.MessagingStyle تم تغيير السلوك

تتضمّن الإشعارات بهذا النمط الاختلافات التالية:

Notification.CarExtender

Notification.WearableExtender

لم يتم الاستخدام لا تتوافق أدوات التوسيع.

Notification.Action.Builder

يصف الجدول 3 التغييرات والقيود المفروضة على واجهة برمجة التطبيقات في فئة Notification.Action.Builder.

الجدول 3. التغييرات التي طرأت على الطرق العامة لفئة Notification.Action.Builder

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