تزوّد الإشعارات السائقين بمعلومات قصيرة وفي الوقت المناسب عن الأحداث من تطبيقك أثناء عدم استخدامه. يمكن أن تظهر الإشعارات في مركز الإشعارات، ويمكن أن تظهر بعض الإشعارات أيضًا على شكل
إشعارات تنبيه على الشاشة. لإنشاء إشعارات لنظام التشغيل Android Automotive، يجب استخدام واجهة برمجة التطبيقات NotificationBuilder
نفسها التي تستخدمها للأجهزة الأخرى. ومع ذلك، للمساعدة في ضمان سلامة السائقين وتقليل مصادر التشتيت، يتم حظر بعض الطرق وفئات واجهة برمجة التطبيقات أو التصرف بشكل مختلف.
أوجه الاختلاف بين الإشعارات في السيارات
لإنشاء بيئة قيادة آمنة خالية من مصادر التشتيت، تختلف الإشعارات على نظام التشغيل Android Automotive عن الإشعارات على الأجهزة الأخرى في الطرق التالية:
- تفاعل المستخدمين المبسَّط
- قيود تجربة المستخدم استنادًا إلى حالة القيادة
تفاعل المستخدمين المبسَّط
للمساعدة في ضمان تمكّن السائقين من التركيز على الطريق، تحتوي الإشعارات في السيارة على نموذج مبسّط لتفاعل المستخدم مع الميزات التالية:
- ما مِن عناصر تحكُّم معقدة
- لا تسمح الإشعارات بعناصر التحكّم المعقّدة، مثل النقر لتوسيع الإشعار أو الضغط مع الاستمرار على الإشعار للاطّلاع على خيارات إضافية أو استخدام عناصر التحكّم استنادًا إلى إيماءات التمرير السريع.
- أصوات الإشعارات
- لا تُصدر الإشعارات صوتًا إلا إذا أدّت إلى ظهور إشعار تنبيه.
يضيف نظام التشغيل Android Automotive زرَّي التشغيل وكتم الصوت تلقائيًا إلى جميع إشعارات المراسلة المتوافقة مع السيارة.
- Play: يقرأ الإشعار المُرسَل إلى السائق باستخدام المساعد الرقمي التلقائي للمستخدم، مثل "مساعد Google"، أو نظام تحويل النص إلى كلام التلقائي في المركبة.
تجاهل: لمنع ظهور إشعارات التنبيه لأي رسائل مستقبلية في المحادثة لبقية مساحة Drive. ستظل إشعارات الرسائل من المحادثات التي تم تجاهلها تظهر في مركز الإشعارات، ويمكن للسائق أيضًا إعادة صوت المحادثة من مركز الإشعارات.
- خيارات مبسّطة لعرض الإشعارات
لا تتوفّر طرق عرض المحتوى
RemoteViews
وطرق عرض المحتوى المخصّصة. بالإضافة إلى ذلك، لا تتوفّر أنماط الإشعارات التالية:BigPictureStyle
BigTextStyle
InboxStyle
إذا أرسل تطبيقك إشعارًا إلى نظام التشغيل Android Automotive باستخدام أحد أنماط الإشعارات هذه، لن يتم عرض سوى نص الملخص.
- إدارة مبسّطة لقناة الإشعارات
لا يتوافق نظام التشغيل Android 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
أو قيمة أعلى والتأكّد من أنّ الإشعار يندرج ضمن إحدى الفئات التالية:
مدة إشعار التنبيه
بعد أن يشغّل أحد التطبيقات إشعار التنبيه، يظهر الإشعار فورًا على شاشة السيارة. إذا لم يتخذ السائق أي إجراء، يتم إغلاق إشعار الإنذار تلقائيًا بعد ثماني ثوانٍ، إلا في الحالات التالية:
لا يمكن إغلاق إشعارات التنبيه بشأن بعض المكالمات الواردة، ويظل إشعار التنبيه إلى أن يقبل السائق المكالمة أو يتم إنهاؤها. ليصبح الإشعار تنبيهًا لا يمكن إغلاقه بمكالمة واردة، يجب أن يستوفي الإشعار المتطلبات التالية:
- ينتمي إلى
CATEGORY_CALL
- تحديد هدف ملء الشاشة
- وضع علامة مستمرة باستخدام الإجراء
setOngoing()
- ينتمي إلى
تظل إشعارات التنبيه إذا تم تحديث الإشعار من خلال التطبيق خلال الفترة الزمنية التي تبلغ ثماني ثوانٍ.
عند إغلاق إشعار التنبيه، يتم إدراجه في "مركز الإشعارات"، ما لم يكن إشعار CATEGORY_NAVIGATION
.
التغييرات والقيود المفروضة على واجهة برمجة التطبيقات Notification API للسيارات
يلخّص هذا القسم الاختلافات بين كل فئة تختلف فيها واجهة برمجة التطبيقات للإشعارات أو بفرض قيود عليها في نظام التشغيل Android Automotive.
أداة إنشاء الإشعارات
يوضِّح الجدولان 1 و2 التغييرات والقيود المفروضة على واجهة برمجة التطبيقات في الفئة
Notification.Builder
.
الجدول 1. تغييرات على الطرق المتاحة للجميع في Notification.Builder
الطرق المتاحة للجميع | التأثير | الوصف | ||
---|---|---|---|---|
|
بيئة شرطية مشروطة | يجب أن تضيف إشعارات Notification.MessagingStyle
الإجراءات المحدّدة في
متطلبات التوافق. لن يتم عرض أي إجراءات إضافية تتم إضافتها على شكل أزرار إشعارات. |
||
|
لا بيئة | RemoteViews
ولا تتوفر طرق عرض المحتوى المخصص. |
||
|
لا بيئة | شارات الإشعارات غير متاحة. | ||
| لا بيئة | موقتات العد التنازلي غير متاحة. | ||
setColorized() |
تم تغيير القيود |
التطبيقات الموقَّعة عبر النظام الأساسي: قابلة للضبط، ويُسمح بها تلقائيًا. التطبيقات المحمية بامتيازات النظام: يتم ضبطها من خلال النظام الأساسي، ولا يُسمح بها تلقائيًا. جميع التطبيقات الأخرى: تم ضبطها من خلال النظام الأساسي، ولا يُسمح بها تلقائيًا. |
||
setFullScreenIntent() |
تم تغيير السلوك | لا يتم إطلاق الغرض تلقائيًا. | ||
setLargeIcon() |
تم تغيير السلوك | تظهر الرموز الكبيرة على الجانب الأيسر من الإشعار. | ||
setLights() |
لا بيئة | لا تحتوي الأجهزة التي تعمل بنظام التشغيل Android Automotive على أضواء LED. | ||
setOngoing() |
تم تغيير السلوك |
ويختلف السلوك عندما يؤدّي الإشعار أيضًا إلى تفعيل إشعار تنبيه. لا يمكن إغلاق إشعار التنبيهات من خلال |
لا بيئة | الوضع الخاص غير متاح. |
setSettingsText() |
لا بيئة | لا تتيح الإشعارات العناصر التي ترتبط بإعدادات التطبيق. ويمكن للسائقين الوصول إلى إعدادات التطبيق من خلال التطبيق بدلاً من ذلك. | ||
setTicker() |
لا بيئة | لا يمكن استخدام نص المؤشر. |
الجدول 2. تغييرات على الصفوف المدمجة في Notification.Builder
الصفوف المتداخلة | التأثير | الوصف |
---|---|---|
|
غير مستخدَم | لن يظهر سوى نص الملخّص فقط. ولا تتوفّر إشعارات تفصيلية لهذه الأنماط. |
Notification.BubbleMetadata |
غير مستخدَم | ولا يمكن استخدام الفقاعات التفسيرية. |
Notification.MediaStyle |
مخفية | الإشعارات بهذا النمط مخفية. يدير نظام التشغيل Android Automotive تفاعلات واجهة المستخدم لإشعارات الوسائط والتشغيل. |
Notification.MessagingStyle |
تم تغيير السلوك |
تتميّز الإشعارات بهذا النمط بالاختلافات التالية:
|
|
غير مستخدَم | لا يمكن استخدام موسِّعات. |
تطبيق Notification.Action.Builder
يوضّح الجدول 3 التغييرات والقيود المفروضة على واجهة برمجة التطبيقات في الفئة
Notification.Action.Builder
.
الجدول 3. تغييرات على الطرق المتاحة للجميع في Notification.Action.Builder
الطرق المتاحة للجميع | التأثير | الوصف |
---|---|---|
شركات الإنشاء العامة | تم تغيير السلوك | يتم تجاهل الأيقونات المحددة في دوال الإنشاء العامة. |
addRemoteInput |
تم تغيير السلوك | للحدّ من تشتيت السائق، يدرج المساعد الرقمي، مثل "مساعد Google"، الردّ على الرسائل الموجّهة إلى المستخدم. ولا يمكن للمستخدمين كتابة الرسائل. |
setAllowGeneratedReplies |
لا بيئة | ميزة "الرد السريع" غير متاحة. |