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