همه دستگاه های تلفن همراه فروخته شده در هند از اول ژانویه 2017 باید یک دکمه وحشت برای برآورده کردن الزامات وزارت ارتباطات هند (DoT) ارائه دهند. برای رسیدگی به این الزامات نظارتی، Android شامل اجرای مرجعی از ویژگی Emergency Affordance برای فعال کردن دکمه وحشت در دستگاههای Android است.
این ویژگی به طور پیشفرض در نسخههای اندروید 8.0 و بالاتر فعال است، اما باید در نسخههای موجود نسخههای قبلی وصله شود. این ویژگی منحصراً دستگاههای فروخته شده در بازار هند را هدف قرار میدهد، اما میتواند در تمام دستگاههای فروخته شده در سراسر جهان گنجانده شود زیرا این ویژگی در خارج از هند تأثیری ندارد.
مثال ها و منبع
ویژگی Emergency Affordance در پروژه چارچوب/پایه پروژه منبع باز Android (AOSP) پیاده سازی شده است. در شعبه اصلی موجود است و به طور پیش فرض در نسخه های اندروید 8.0 و بالاتر فعال است.
این ویژگی در شاخه ها و commit های زیر موجود است. این اطلاعات ارائه شده است تا سازندگان دستگاه بتوانند به راحتی تغییرات لازم را در بیلدهای موجود خود وصله کنند. سازندگان دستگاههایی که میخواهند ویژگی AOSP مرجع Emergency Affordance را پیادهسازی کنند، میتوانند تعهدات را از شاخههای قابل اجرا در ساختهای خود انتخاب کنند.
شعبه | متعهد می شود |
---|---|
اصلی | e0c3c66 ویژگی Emergency Affordance اضافه شد 42a4338 ترجمه هایی برای رشته اقدام اضطراری اضافه شد 4df8d64 مشکلی را برطرف کرد که در آن ویژگی Emergency Affordance در تبلت ها نشان داده می شد |
nougat-dev | e6680d9 ویژگی Emergency Affordance اضافه شد 95e1865 ترجمه هایی برای رشته اقدام اضطراری اضافه شد a70bb89 مشکلی را برطرف کرد که در آن ویژگی Emergency Affordance در تبلت ها نشان داده می شد |
marshmallow-dev | cd22634 ویژگی Emergency Affordance اضافه شد 13f51c6 ترجمه هایی برای رشته اقدام اضطراری اضافه شد 6531666 مشکلی را برطرف کرد که در آن ویژگی Emergency Affordance در تبلت ها نشان داده می شد |
lollipop-mr1-dev | 5fbc86b ویژگی Emergency Affordance اضافه شد 1b60879 ترجمه هایی برای رشته اقدام اضطراری اضافه شد d74366f مشکلی را برطرف کرد که در آن ویژگی Emergency Affordance در تبلت ها نشان داده می شد |
پیاده سازی
ویژگی Emergency Affordance هیچ تغییری در APIهای ارائه شده از طریق کیت توسعه نرم افزار اندروید (SDK) ایجاد نمی کند. هنگامی که این ویژگی فعال و فعال می شود، دو ماشه را ارائه می دهد که می تواند یک تماس اضطراری را با 112 آغاز کند، که تنها شماره اضطراری مورد استفاده در هند است و توسط مقررات DoT هند الزامی شده است.
تماس اضطراری توسط یکی از موارد زیر آغاز می شود:
فشار دادن طولانی دکمه اورژانس روی صفحه قفل | روی گزینه Emergency ضربه بزنید در منوی اقدام جهانی |
---|---|
شکل 1. | شکل 2. اقدام اضطراری در منوی اقدام جهانی (با فشار طولانی کلید روشن/خاموش قابل دسترسی است). |
این ویژگی اجزای داخلی زیر را معرفی می کند:
- Emergency AffordanceManager
frameworks/base/core/java/com/android/internal/policy/EmergencyAffordanceManager.java
- EmergencyAffordance Service
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) باشد، ویژگی ia فعال میشود. این به این معنی است که این ویژگی می تواند در هند حتی در صورت عدم وجود سیم کارت فعال شود. فرض بر این است که شبکه تلفن همراه اجازه ثبت تماس های اضطراری را حتی بدون نصب سیم کارت می دهد. این ویژگی تا زمانی که سیمکارت غیر هندی نصب نشود و هیچ یک از شبکههای شناساییشده دارای MCC منطبق نباشد، فعال باقی میماند.
منابع و تنظیمات زیر بر رفتار ویژگی Emergency Affordance تأثیر می گذارد. اگر نوع پیکربندی:
- منبع ، یک منبع داخلی است که در
frameworks/base/core/res/res/values/config.xml
تعریف شده است. - Setting ، تنظیمی است که در ارائه دهنده تنظیمات سیستم ذخیره شده است.
نوع پیکربندی | نام | توضیحات |
---|---|---|
منبع | config_emergency_call_number | شماره تلفنی که هنگام برقراری تماس اضطراری به طور خودکار شماره گیری می شود. نوع: رشته پیش فرض: 112 |
منبع | config_emergency_mcc_codes | آرایه ای از اعداد صحیح که MCC هایی را که ویژگی باید در آنها فعال باشد فهرست می کند. نوع: آرایه اعداد صحیح پیشفرض: {404,405} |
تنظیم | شماره اضطراری | تنظیم جهانی با شماره تماس با هزینه اضطراری لغو می شود. این فقط بر روی تصاویر ساخت قابل اشکال زدایی اثر دارد (یعنی نوع ساخت userdebug یا eng است). این فقط برای آزمایش در نظر گرفته شده است. نوع: رشته پیش فرض: تنظیم نشده است |
تنظیم | نیرو_اضطراری_استطاعت | تنظیم جهانی، اینکه آیا ویژگی هزینه اضطراری باید بدون توجه به وضعیت دستگاه نشان داده شود. این فقط برای آزمایش در نظر گرفته شده است. نوع: بولی (1 یا 0) پیش فرض: تنظیم نشده --> 0 |
تماس های اضطراری با 112 را فعال کنید
ویژگی Emergency Affordance تماس را با استفاده از شماره گیر اضطراری متصل می کند تا زمانی که صفحه قفل فعال است تماس برقرار شود. شماره گیر اضطراری تماس ها را فقط به لیست شماره های ارائه شده توسط لایه رابط رادیویی (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 پشتیبانی نمی شود زیرا برخی از برنامه های پرکاربرد (به عنوان مثال، برنامه دوربین) از حرکات دکمه روشن/خاموش استفاده می کنند که شامل ضربه زدن مکرر دکمه پاور است. . چنین برنامههایی ممکن است با شمارهگیر اضطراری تداخل داشته باشند یا کاربر ممکن است بهطور تصادفی دکمه وحشت را در حین تلاش برای فعال کردن اقدامات در این برنامهها فعال کند.