تنفيذ تكاليف الطوارئ

يجب أن توفر جميع الأجهزة المحمولة المباعة في الهند اعتبارًا من 1 يناير 2017 زر الذعر لتلبية متطلبات وزارة الاتصالات الهندية (DoT). لتلبية هذه المتطلبات التنظيمية، يتضمن Android تطبيقًا مرجعيًا لميزة Emergency Affordance لتمكين زر الذعر على أجهزة Android.

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

الأمثلة والمصادر

يتم تنفيذ ميزة "تحمل تكاليف الطوارئ" في أطر عمل/مشروع قاعدة مشروع Android مفتوح المصدر (AOSP). إنه متوفر في الفرع الرئيسي ويتم تمكينه افتراضيًا في Android 8.0 والإصدارات الأحدث.

هذه الميزة متاحة حاليًا في الفروع والالتزامات التالية. يتم توفير هذه المعلومات لتمكين الشركات المصنعة للأجهزة من تصحيح التغييرات الضرورية في إصداراتها الحالية بسهولة. يمكن لمصنعي الأجهزة الراغبين في تنفيذ ميزة تحمل تكاليف الطوارئ المرجعية لـ AOSP اختيار الالتزامات من الفروع المعمول بها في تصميماتهم الخاصة.

الجدول 1. اختيارات الكرز لميزة تحمل تكاليف الطوارئ المرجعية لـ AOSP

فرع يرتكب
رئيسي e0c3c66 تمت إضافة ميزة تحمل تكاليف الطوارئ
42a4338 تمت إضافة ترجمات لسلسلة إجراءات الطوارئ
4df8d64 تم إصلاح مشكلة ظهور مخصصات الطوارئ على الأجهزة اللوحية
nougat-dev e6680d9 تمت إضافة ميزة تحمل تكاليف الطوارئ
95e1865 تمت إضافة ترجمات لسلسلة إجراءات الطوارئ
a70bb89 تم إصلاح مشكلة ظهور مخصصات الطوارئ على الأجهزة اللوحية
marshmallow-dev cd22634 تمت إضافة ميزة تحمل تكاليف الطوارئ
13f51c6 تمت إضافة ترجمات لسلسلة إجراءات الطوارئ
6531666 تم إصلاح مشكلة ظهور مخصصات الطوارئ على الأجهزة اللوحية
lollipop-mr1-dev 5fbc86b تمت إضافة ميزة تحمل تكاليف الطوارئ
1b60879 تمت إضافة ترجمات لسلسلة إجراءات الطوارئ
d74366f تم إصلاح مشكلة ظهور مخصصات الطوارئ على الأجهزة اللوحية

تطبيق

لا تُجري ميزة Emergency Affordance أي تغييرات على واجهات برمجة التطبيقات التي يتم عرضها من خلال Android Software Development Kit (SDK). عند تمكينها وتنشيطها، توفر هذه الميزة مشغلين يمكنهم بدء مكالمة طوارئ إلى الرقم 112، وهو رقم الطوارئ الوحيد الذي سيتم استخدامه في الهند والذي تفرضه لوائح دائرة النقل الهندية.

يتم بدء مكالمة الطوارئ إما عن طريق:

الضغط لفترة طويلة على زر الطوارئ
على شاشة القفل
النقر على خيار الطوارئ
في قائمة الإجراءات العامة
زر الطوارئ
الشكل 1. زر الطوارئ على شاشة القفل.
خيار الطوارئ
الشكل 2. إجراء الطوارئ في قائمة الإجراءات العالمية (يتم الوصول إليها عن طريق الضغط لفترة طويلة على مفتاح التشغيل).

تقدم هذه الميزة المكونات الداخلية التالية:

  • مدير تكاليف الطوارئ
    frameworks/base/core/java/com/android/internal/policy/EmergencyAffordanceManager.java
    
  • خدمة تكاليف الطوارئ
    frameworks/base/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java
    

مدير تكاليف الطوارئ

يوفر EmergencyAffordanceManager واجهة برمجة تطبيقات داخلية لاستخدام ميزة EmergencyAffordance. فهو يوفر طرقًا لبدء مكالمة الطوارئ والاستعلام في وقت التشغيل عما إذا كان يجب تمكين الميزة.

  • void performEmergencyCall() . يبدأ مكالمة طوارئ.
  • boolean needsEmergencyAffordance() . يحدد ما إذا كان يجب أن تكون الميزة نشطة أم لا.

قد يتم تعطيل الميزة نهائيًا في وقت الإنشاء عن طريق تغيير الثابت EmergencyAffordanceManager.ENABLED إلى false . سيؤدي هذا إلى إرجاع needsEmergencyAffordance() دائمًا إلى خطأ ومنع EmergencyAffordanceService من البدء.

خدمة تكاليف الطوارئ

خدمة EmergencyAffordanceService هي خدمة نظام تراقب رمز البلد المحمول (MCC) لجميع الشبكات الخلوية المكتشفة ورمز MCC لبطاقات SIM المثبتة. إذا كانت أي من بطاقات SIM المثبتة أو الشبكات الخلوية المكتشفة تحتوي على مركز عملائي يطابق أحد مراكز عملائي في الهند (404 أو 405)، فسيتم تمكين الميزة. وهذا يعني أنه يمكن تمكين الميزة في الهند حتى في حالة عدم وجود بطاقة SIM. من المفترض أن تسمح شبكة الهاتف المحمول بالتسجيل لمكالمات الطوارئ حتى بدون تثبيت بطاقة SIM. ستظل هذه الميزة ممكنة حتى يتم تثبيت بطاقة SIM غير هندية ولا تحتوي أي من الشبكات المكتشفة على مركز عملائي مطابق.

تؤثر الموارد والإعدادات التالية على سلوك ميزة تحمل تكاليف الطوارئ. إذا كان نوع التكوين هو:

  • Resource ، هو مورد داخلي محدد في frameworks/base/core/res/res/values/config.xml .
  • الإعداد ، هو إعداد مخزّن في موفر إعدادات الأنظمة.

الجدول 2. الإعدادات التي تؤثر على سلوك ميزة توفير التكاليف في حالات الطوارئ

نوع التكوين اسم وصف
الموارد config_emergency_call_number رقم الهاتف الذي يتم الاتصال به تلقائيًا عند بدء مكالمة الطوارئ.
النوع: سلسلة
الافتراضي: 112
الموارد config_emergency_mcc_codes مجموعة من الأعداد الصحيحة التي تسرد حسابات مركز عملائي (MCC) التي يجب أن تكون الميزة نشطة فيها.
النوع: مصفوفة من الأعداد الصحيحة
الافتراضي: {404,405}
جلسة Emergency_affordance_number يتم تجاوز الإعداد العالمي بالرقم الذي سيتم الاتصال به من خلال توفير تكاليف الطوارئ. سيكون لهذا تأثير فقط على صور البناء القابلة للتصحيح (أي نوع البناء هو userdebug أو eng). وهذا مخصص للاختبار فقط.
النوع: سلسلة
الافتراضي: غير محدد
جلسة force_emergency_affordance الإعداد العالمي، ما إذا كان ينبغي إظهار القدرة على تحمل تكاليف الطوارئ بغض النظر عن حالة الجهاز. وهذا مخصص للاختبار فقط.
النوع: منطقي (1 أو 0)
الافتراضي: غير محدد --> 0

تمكين مكالمات الطوارئ إلى 112

تقوم ميزة توفير تكاليف الطوارئ بتوصيل المكالمة باستخدام طالب الطوارئ بحيث يمكن توصيل المكالمة عندما تكون شاشة القفل نشطة. يقوم برنامج الاتصال في حالات الطوارئ بتوصيل المكالمات فقط بقائمة الأرقام التي توفرها طبقة واجهة الراديو (RIL) من خلال خاصية النظام:

  • ril.ecclist في حالة عدم تثبيت بطاقة SIM.
  • ril.ecclist SimSlotNumber عند إدخال بطاقة SIM ويكون SimSlotNumber هو معرف الفتحة للمشترك الافتراضي.

يجب على الشركات المصنعة للأجهزة التي تستخدم ميزة تحمل تكاليف الطوارئ التأكد من أن الأجهزة في الهند تقوم دائمًا بتمكين الرقم 112 كرقم طوارئ في RIL.

تصديق

أثناء الاختبار على بنية قابلة للتصحيح، يمكن تغيير الرقم الذي يتم الاتصال به باستخدام الأمر التالي:

adb shell settings put global emergency_affordance_number NUMBER_TO_CALL

على الرغم من أنه يمكن تعيين هذا الإعداد على إصدار مستخدم عادي، إلا أنه سيتم تجاهله. لتوصيل المكالمة فعليًا، يجب أن يكون الرقم مدرجًا في قائمة أرقام الطوارئ المقدمة من RIL. يمكن ضبط ذلك مؤقتًا باستخدام الأمر التالي الذي يتم تنفيذه من shell الجذر على جهاز userdebug:

setprop ril.ecclist "$(getprop ril.ecclist),NUMBER_TO_CALL"

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

adb shell settings put global force_emergency_affordance 1

كحد أدنى، يوصى باختبار الحالات التالية:

  • بمجرد التنشيط، يؤدي الضغط لفترة طويلة على زر الطوارئ الموجود على شاشة القفل (الشكل 1) إلى بدء اتصال برقم الطوارئ المحدد.
  • بمجرد تنشيطه، يكون عنصر الطوارئ في قائمة الإجراءات العامة موجودًا ويؤدي النقر عليه إلى بدء الاتصال برقم الطوارئ المحدد.
  • لا يتم تنشيط الميزة في حالة عدم وجود شبكة هاتف محمول هندية تم اكتشافها مع تثبيت بطاقة SIM غير هندية.
  • يتم تفعيل الميزة على الجهاز عند تركيب بطاقة SIM هندية، بغض النظر عن شبكات الهاتف المحمول المكتشفة.
  • يتم تفعيل الميزة على الجهاز في حالة وجود شبكة جوال هندية، بغض النظر عن بطاقات SIM المثبتة.

إذا كان الجهاز يتضمن بطاقات SIM متعددة، فيجب أن يضمن الاختبار أن اكتشاف SIM MCC يعمل بشكل صحيح في كل فتحة SIM. لا تخضع ميزة Emergency Affordance لتوافق Android، لذلك لا توجد اختبارات مجموعة اختبار التوافق (CTS) لها.

أسئلة مكررة

س: لم يتم تشغيل رقم الطوارئ 112 بعد في الهند. هل يجب أن لا يزال يستخدم؟

112 هو الرقم الذي سيتم استخدامه في الهند كنقطة إجابة للسلامة العامة (PSAP) كما هو محدد بواسطة أنظمة الاتصالات والاستجابة المتكاملة لحالات الطوارئ (IECRS). وإلى أن يتم تشغيل PSAP، سيتم توجيه جميع المكالمات إلى الرقم 112 إلى رقم الطوارئ 100 الحالي (على الرغم من أن هذه مسؤولية شركة الاتصالات، وليس Android).

س: ماذا عن المحفزات الأخرى مثل الضغط ثلاث مرات على زر الطاقة؟

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