اجرای طرح اضطراری

همه دستگاه های تلفن همراه فروخته شده در هند از اول ژانویه 2017 باید یک دکمه وحشت برای برآورده کردن الزامات وزارت ارتباطات هند (DoT) ارائه دهند. برای رسیدگی به این الزامات نظارتی، Android شامل اجرای مرجعی از ویژگی Emergency Affordance برای فعال کردن دکمه وحشت در دستگاه‌های Android است.

این ویژگی به طور پیش‌فرض در نسخه‌های اندروید 8.0 و بالاتر فعال است، اما باید در نسخه‌های موجود نسخه‌های قبلی وصله شود. در حال حاضر، این ویژگی به طور انحصاری برای دستگاه های فروخته شده در بازار هند طراحی شده است، اما می تواند در تمام دستگاه های فروخته شده در سراسر جهان گنجانده شود زیرا این ویژگی در خارج از هند تأثیری ندارد.

مثال ها و منبع

ویژگی Emergency Affordance در پروژه چارچوب/پایه پروژه منبع باز Android (AOSP) پیاده سازی شده است. در شعبه اصلی موجود است و به طور پیش فرض در نسخه های اندروید 8.0 و بالاتر فعال است.

این ویژگی در حال حاضر در شاخه ها و commit های زیر موجود است. این اطلاعات ارائه شده است تا سازندگان دستگاه بتوانند به راحتی تغییرات لازم را در بیلدهای موجود خود وصله کنند. سازندگان دستگاه‌هایی که می‌خواهند ویژگی استطاعت اضطراری مرجع AOSP را پیاده‌سازی کنند، می‌توانند تعهدات را از شاخه‌های قابل اجرا در ساخت‌های خود انتخاب کنند.

جدول 1. انتخاب گیلاس برای ویژگی استطاعت اضطراری مرجع AOSP

شاخه متعهد می شود
اصلی e0c3c66 ویژگی هزینه اضطراری اضافه شد
42a4338 ترجمه هایی برای رشته اقدام اضطراری اضافه شد
4df8d64 مشکلی را برطرف کرد که در آن هزینه اضطراری در تبلت ها نشان داده می شد
nougat-dev e6680d9 ویژگی اورژانس affordance اضافه شد
95e1865 ترجمه هایی برای رشته اقدام اضطراری اضافه شد
a70bb89 مشکلی را برطرف کرد که در آن هزینه اضطراری در تبلت ها نشان داده می شد
marshmallow-dev cd22634 ویژگی هزینه اضطراری اضافه شد
13f51c6 ترجمه هایی برای رشته اقدام اضطراری اضافه شد
6531666 مشکلی را برطرف کرد که در آن هزینه اضطراری در تبلت‌ها نشان داده می‌شد
lollipop-mr1-dev 5fbc86b ویژگی هزینه اضطراری اضافه شد
1b60879 ترجمه هایی برای رشته اقدام اضطراری اضافه شد
d74366f مشکلی را برطرف کرد که در آن هزینه اضطراری در تبلت ها نشان داده می شد

پیاده سازی

ویژگی Emergency Affordance هیچ تغییری در APIهای ارائه شده از طریق کیت توسعه نرم افزار اندروید (SDK) ایجاد نمی کند. هنگامی که این ویژگی فعال و فعال می شود، دو ماشه را ارائه می دهد که می تواند یک تماس اضطراری را با 112 آغاز کند، که تنها شماره اضطراری مورد استفاده در هند است و توسط مقررات DoT هند الزامی شده است.

تماس اضطراری توسط یکی از موارد زیر آغاز می شود:

فشار دادن طولانی دکمه اورژانس
روی صفحه قفل
روی گزینه Emergency ضربه بزنید
در منوی اقدام جهانی
دکمه اضطراری
شکل 1. دکمه اضطراری روی صفحه قفل.
گزینه اضطراری
شکل 2. اقدام اضطراری در منوی اقدام جهانی (با فشار طولانی کلید روشن/خاموش قابل دسترسی است).

این ویژگی اجزای داخلی زیر را معرفی می کند:

  • EmergencyAffordanceManager
    frameworks/base/core/java/com/android/internal/policy/EmergencyAffordanceManager.java
    
  • EmergencyAffordanceService
    frameworks/base/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java
    

Emergency AffordanceManager

EmergencyAffordanceManager یک API داخلی برای استفاده از ویژگی Emergency Affordance فراهم می کند. روش هایی برای برقراری تماس اضطراری و پرس و جو در زمان اجرا در صورت فعال بودن این ویژگی ارائه می دهد.

  • void performEmergencyCall() . تماس اضطراری را آغاز می کند.
  • boolean needsEmergencyAffordance() . تعیین می کند که آیا ویژگی باید فعال باشد یا خیر.

این ویژگی ممکن است در زمان ساخت با تغییر EmergencyAffordanceManager.ENABLED به false برای همیشه غیرفعال شود. این باعث می‌شود که needsEmergencyAffordance() همیشه false برگرداند و از شروع EmergencyAffordanceService جلوگیری کند.

EmergencyAffordance Service

EmergencyAffordanceService یک سرویس سیستمی است که کد کشور تلفن همراه (MCC) همه شبکه های سلولی شناسایی شده و MCC سیم کارت های نصب شده را نظارت می کند. اگر هر یک از سیم‌کارت‌های نصب‌شده یا شبکه‌های سلولی شناسایی‌شده دارای یک MCC با یکی از MCC‌های هند (404 یا 405) باشد، این ویژگی فعال می‌شود. این به این معنی است که این ویژگی می تواند در هند حتی در صورت عدم وجود سیم کارت فعال شود. فرض بر این است که شبکه تلفن همراه امکان ثبت تماس های اضطراری را حتی بدون نصب سیم کارت فراهم می کند. این ویژگی تا زمانی که سیم‌کارت غیر هندی نصب نشود و هیچ یک از شبکه‌های شناسایی شده دارای MCC منطبق نباشد، فعال باقی می‌ماند.

منابع و تنظیمات زیر بر رفتار ویژگی Emergency Affordance تأثیر می گذارد. اگر نوع پیکربندی:

  • منبع ، یک منبع داخلی است که در frameworks/base/core/res/res/values/config.xml تعریف شده است.
  • Setting ، تنظیمی است که در ارائه دهنده تنظیمات سیستم ذخیره شده است.

جدول 2. تنظیمات موثر بر رفتار ویژگی استطاعت اضطراری

نوع پیکربندی نام شرح
منبع config_emergency_call_number شماره تلفنی که هنگام برقراری تماس اضطراری به طور خودکار شماره گیری می شود.
نوع: رشته
پیش فرض: 112
منبع config_emergency_mcc_codes آرایه ای از اعداد صحیح که MCC هایی را که ویژگی باید در آنها فعال باشد فهرست می کند.
نوع: آرایه اعداد صحیح
پیش‌فرض: {404,405}
تنظیمات شماره اضطراری تنظیم جهانی با شماره تماس با هزینه اضطراری لغو می شود. این فقط بر روی تصاویر ساخت قابل اشکال زدایی اثر می گذارد (یعنی نوع ساخت کاربرdebug یا eng است). این فقط برای آزمایش در نظر گرفته شده است.
نوع: رشته
پیش فرض: تنظیم نشده است
تنظیمات نیرو_اضطراری_استطاعت تنظیم جهانی، اینکه آیا هزینه اضطراری باید صرف نظر از وضعیت دستگاه نشان داده شود. این فقط برای آزمایش در نظر گرفته شده است.
نوع: بولی (1 یا 0)
پیش فرض: تنظیم نشده --> 0

تماس های اضطراری با 112 را فعال کنید

ویژگی هزینه اضطراری، تماس را با استفاده از شماره گیر اضطراری متصل می کند تا زمانی که صفحه قفل فعال است، تماس برقرار شود. شماره گیر اضطراری تماس ها را فقط به لیست شماره های ارائه شده توسط لایه رابط رادیویی (RIL) از طریق ویژگی سیستم متصل می کند:

  • ril.ecclist وقتی سیم کارت نصب نشده باشد.
  • ril.ecclist SimSlotNumber هنگامی که یک سیم کارت درج می شود و SimSlotNumber شناسه شکاف مشترک پیش فرض است.

سازندگان دستگاه‌هایی که از ویژگی هزینه اضطراری استفاده می‌کنند باید اطمینان حاصل کنند که دستگاه‌های هند همیشه 112 را به عنوان یک شماره اضطراری در RIL فعال می‌کنند.

اعتبار سنجی

در حین آزمایش بر روی یک بیلد قابل اشکال زدایی، شماره فراخوانی شده را می توان با دستور زیر تغییر داد:

adb shell settings put global emergency_affordance_number NUMBER_TO_CALL

اگرچه این تنظیم را می توان روی یک ساخت کاربر معمولی تنظیم کرد، اما نادیده گرفته می شود. برای اتصال واقعی تماس، شماره باید در لیست شماره های اضطراری ارائه شده توسط RIL باشد. این را می توان به طور موقت با استفاده از دستور زیر که از پوسته ریشه در یک دستگاه userdebug اجرا می شود تنظیم کرد:

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

دستور زیر همچنین می تواند برای فعال کردن ویژگی Emergency Affordance حتی در صورت عدم شناسایی شبکه تلفن همراه هند یا درج سیم کارت هندی استفاده شود.

adb shell settings put global force_emergency_affordance 1

حداقل توصیه می شود موارد زیر را آزمایش کنید:

  • پس از فعال شدن، با فشار طولانی دکمه اورژانس روی صفحه قفل (شکل 1) یک تماس با شماره اضطراری مشخص شده آغاز می شود.
  • پس از فعال شدن، مورد اضطراری در منوی اقدام جهانی وجود دارد و با ضربه زدن روی آن، تماس با شماره اضطراری مشخص شده آغاز می شود.
  • در صورت عدم وجود شبکه تلفن همراه هندی شناسایی شده با سیم کارت غیر هندی نصب شده، این ویژگی فعال نمی شود .
  • این ویژگی با نصب یک سیم کارت هندی، بدون توجه به شبکه های تلفن همراه شناسایی شده، روی دستگاه فعال می شود .
  • این ویژگی بدون توجه به سیم کارت های نصب شده، در حضور یک شبکه تلفن همراه هندی بر روی دستگاه فعال می شود .

اگر دستگاهی دارای چندین سیم کارت است، آزمایش باید اطمینان حاصل کند که تشخیص MCC سیم کارت در هر شیار سیم کارت به درستی کار می کند. ویژگی Emergency Affordance توسط سازگاری Android کنترل نمی شود، بنابراین هیچ تست Compatibility Test Suite (CTS) برای آن وجود ندارد.

سوالات متداول

س. شماره اضطراری 112 هنوز در هند راه اندازی نشده است. آیا هنوز هم باید استفاده شود؟

112 عددی است که در هند به عنوان نقطه پاسخگویی ایمنی عمومی (PSAP) همانطور که توسط سیستم‌های ارتباطات و پاسخ اضطراری یکپارچه (IECRS) تعریف شده است، استفاده می‌شود. تا زمانی که PSAP راه اندازی شود، تمام تماس ها با 112 به شماره اضطراری 100 موجود ارسال می شود (البته این مسئولیت به عهده شرکت مخابراتی است، نه Android).

س. در مورد سایر محرک ها مانند سه بار فشار دادن دکمه پاور چطور؟

سازندگان دستگاه ممکن است انتخاب کنند که محرک های اضافی را پیاده سازی کنند. با این حال، در حالی که DoT هند سه بار ضربه زدن روی دکمه روشن/خاموش سخت‌افزاری را تایید می‌کند، این ماشه در اجرای مرجع AOSP پشتیبانی نمی‌شود ، زیرا برخی از برنامه‌های کاربردی پرکاربرد (مانند برنامه دوربین) از حرکات دکمه روشن/خاموش استفاده می‌کنند که شامل ضربه زدن مکرر دکمه پاور است. چنین برنامه هایی ممکن است با شماره گیر اضطراری تداخل داشته باشند یا کاربر ممکن است به طور تصادفی دکمه پانیک را در حین تلاش برای فعال کردن اقدامات در این برنامه ها فعال کند.