כל המכשירים הניידים שנמכרים בהודו החל מ-1 בינואר 2017 חייבים לכלול לחצן מצוקה כדי לעמוד בדרישות של משרד התקשורת ההודי (DoT). כדי לעמוד בדרישות הרגולטוריות האלה, מערכת Android כוללת הטמעה של מאפיין Emergency Affordance (תכונה לחירום) כדי להפעיל לחצן מצוקה במכשירי Android.
התכונה הזו מופעלת כברירת מחדל בגרסאות Android 8.0 ואילך, אבל צריך לתקן אותה בגרסאות build קיימות של גרסאות קודמות. התכונה הזו מיועדת אך ורק למכשירים שנמכרים בשוק ההודי, אבל אפשר לכלול אותה בכל המכשירים שנמכרים ברחבי העולם, כי אין לה השפעה מחוץ להודו.
דוגמאות ומקור
התכונה 'גישה מהירה למצבי חירום' מוטמעת בפרויקט frameworks/base של פרויקט הקוד הפתוח של Android (AOSP). היא זמינה בהסתעפות הראשית ומופעלת כברירת מחדל במהדורות Android 8.0 ואילך.
התכונה הזו זמינה בהסתעפויות ובשינויים הבאים. המידע הזה זמין כדי לאפשר ליצרני המכשירים לתקן בקלות את השינויים הנדרשים בגרסאות ה-build הקיימות שלהם. יצרני מכשירים שרוצים להטמיע את התכונה AOSP reference Emergency Affordance יכולים לבחור את ההתחייבויות (commits) מההסתעפויות הרלוונטיות ולהוסיף אותן לגרסאות ה-build שלהם.
טבלה 1. בחירות מתוך מאגר הקוד של AOSP למאפיין Emergency Affordance
סניף | שינויים (commits) |
---|---|
ראשי | e0c3c66
נוספה התכונה 'אפשרות חירום' 42a4338 נוספו תרגומים למחרוזת הפעולה למקרה חירום 4df8d64 תוקנה בעיה שבה התכונה 'אפשרות חירום' הופיעה בטאבלטים |
nougat-dev | e6680d9
נוספה התכונה 'תכונה נגישה למקרה חירום' 95e1865 נוספו תרגומים למחרוזת של פעולת החירום a70bb89 תוקנה בעיה שבה התכונה 'תכונה נגישה למקרה חירום' הופיעה בטאבלטים |
marshmallow-dev | cd22634
נוספה התכונה 'תכונות חירום' 13f51c6 נוספו תרגומים למחרוזת של פעולת החירום 6531666 תוקנה בעיה שבה התכונה 'תכונות חירום' הוצגה בטאבלטים |
lollipop-mr1-dev | 5fbc86b
נוספה התכונה 'תכונות חירום' 1b60879 נוספו תרגומים למחרוזת של פעולת החירום d74366f תוקנה בעיה שבגללה התכונה 'תכונות חירום' הופיעה בטאבלטים |
הטמעה
התכונה 'גישה נוחה למקרה חירום' לא משנה את ממשקי ה-API שנחשפים דרך ערכת הכלים לפיתוח תוכנה (SDK) של Android. כשהתכונה מופעלת, יש לה שני טריגרים שיכולים להפעיל שיחת חירום למספר 112, שהוא מספר החירום היחיד שצריך להשתמש בו בהודו בהתאם לתקנות של משרד התקשורת ההודי (DoT).
אפשר לבצע שיחת חירום באחת מהדרכים הבאות:
לחיצה ארוכה על הלחצן חירום במסך הנעילה |
מקישים על האפשרות חירום בתפריט הפעולות הגלובלי. |
---|---|
![]() איור 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
EmergencyAffordanceManager
EmergencyAffordanceManager מספק ממשק API פנימי לשימוש בתכונה Emergency Affordance. הוא מספק שיטות להפעלת הקריאה למקרה חירום ולשליחת שאילתה בסביבת זמן הריצה כדי לבדוק אם התכונה מופעלת.
void performEmergencyCall()
. הפעלת שיחת חירום.boolean needsEmergencyAffordance()
. קובע אם התכונה צריכה להיות פעילה.
כדי להשבית את התכונה באופן סופי בזמן ה-build, משנים את הקבוע EmergencyAffordanceManager.ENABLED
לערך false
.
כתוצאה מכך, needsEmergencyAffordance()
תמיד מחזירה את הערך false ומונעת את ההפעלה של EmergencyAffordanceService
.
EmergencyAffordanceService
EmergencyAffordanceService
הוא שירות מערכת שמנטר את קוד המדינה לנייד (MCC) של כל הרשתות הסלולריות שזוהו ואת ה-MCC של כרטיסי ה-SIM המותקנים. אם לאחד מכרטיסי ה-SIM המותקנים או לרשתות הסלולריות שזוהו יש מזהה חשבון ניהול (MCC) שתואם לאחד ממזהי ה-MCC של הודו (404 או 405), התכונה מופעלת. כלומר, אפשר להפעיל את התכונה בהודו גם אם אין כרטיס SIM. ההנחה היא שהרשת הסלולרית מאפשרת להירשם לשיחות חירום גם בלי כרטיס SIM מותקן. התכונה תישאר מופעלת עד שתתקינו כרטיס SIM שלא שייך להודו, ושלאף אחת מהרשתות שזוהו לא יהיה MCC תואם.
המשאבים וההגדרות הבאים משפיעים על ההתנהגות של התכונה 'גישה למקרה חירום'. אם סוג התצורה הוא:
- משאב, זהו משאב פנימי שמוגדר ב-
frameworks/base/core/res/res/values/config.xml
. - הגדרה, זוהי הגדרה שמאוחסנת בספק ההגדרות של המערכת.
טבלה 2. הגדרות שמשפיעות על ההתנהגות של התכונה 'גישה מהירה לשירותי חירום'
סוג ההגדרה | שם | תיאור |
---|---|---|
משאב | config_emergency_call_number | מספר הטלפון שאליו מתבצע חיוג אוטומטי כשמתחילים את שיחת החירום. סוג: מחרוזת ברירת מחדל: 112 |
משאב | config_emergency_mcc_codes | מערך של מספרים שלמים שמפרטים את חשבונות הניהול שבהם התכונה אמורה להיות פעילה. סוג: מערך של מספרים שלמים ברירת מחדל: {404,405} |
הגדרה | emergency_affordance_number | שינוי הגדרה גלובלית באמצעות המספר שאליו רוצים להתקשר באמצעות הלחצן למקרי חירום. ההשפעה היא רק על קובצי אימג' של גרסאות build שניתן לנפות באגים בהן (כלומר, סוג ה-build הוא userdebug או eng). האפשרות הזו מיועדת לבדיקה בלבד. סוג: מחרוזת ברירת מחדל: לא מוגדר |
הגדרה | force_emergency_affordance | הגדרה גלובלית, שמציינת אם תכונת 'גישה מהירה לשיחות חירום' תוצג ללא קשר למצב המכשיר. האפשרות הזו מיועדת לבדיקה בלבד. סוג: בוליאני (1 או 0) ברירת מחדל: לא מוגדר --> 0 |
הפעלת שיחות חירום למספר 112
התכונה 'גישה מהירה לשיחות חירום' מחברת את השיחה באמצעות חייגן החירום, כך שאפשר לבצע את השיחה כשמסך הנעילה פעיל. הכלי לחיוג למקרה חירום מחבר שיחות רק לרשימה של המספרים שסופקו על ידי שכבת ממשק הרדיו (RIL) דרך מאפיין המערכת:
ril.ecclist
כשאין כרטיס SIM מותקן.ril.ecclistSimSlotNumber
כשמוכנס כרטיס SIM, ו-SimSlotNumber
הוא מזהה החריץ של המנוי שמוגדר כברירת מחדל.
יצרני מכשירים שמשתמשים בתכונה Emergency Affordance חייבים לוודא שבמכשירים בהודו תמיד מופעל המספר 112 כמספר חירום ב-RIL.
אימות
בזמן הבדיקה ב-build שניתן לניפוי באגים, אפשר לשנות את המספר שאליו מתבצעת הקריאה באמצעות הפקודה הבאה:
adb shell settings put global emergency_affordance_number NUMBER_TO_CALL
אפשר להגדיר את ההגדרה הזו ב-build רגיל של משתמש, אבל המערכת תתעלם ממנה. כדי שהשיחה תתבצע בפועל, המספר צריך להופיע ברשימת מספרי החירום שסופקו על ידי ה-RIL. אפשר להגדיר את זה באופן זמני באמצעות הפקודה הבאה, שמופעל במעטפת root במכשיר userdebug:
setprop ril.ecclist "$(getprop ril.ecclist),NUMBER_TO_CALL"
אפשר להשתמש בפקודה הבאה גם כדי לאלץ את הפעלת התכונה 'אפשרות חירום' גם אם לא זוהתה רשת סלולרית בהודו או שלא הוכנס כרטיס SIM מהודו.
adb shell settings put global force_emergency_affordance 1
מומלץ לבדוק לפחות את התרחישים הבאים:
- כשהתכונה מופעלת, לחיצה ארוכה על הלחצן EMERGENCY במסך הנעילה (איור 1) מפעילה שיחה למספר החירום שצוין.
- כשהתכונה מופעלת, הפריט חירום מופיע בתפריט הגלובלי של הפעולות, והקשה עליו מפעילה שיחה למספר החירום שצוין.
- התכונה לא מופעלת אם לא זוהתה רשת סלולרית הודית עם כרטיס SIM שהותקן מחוץ להודו.
- התכונה מופעלת במכשיר כשמתקין בו כרטיס SIM מהודו, ללא קשר לרשתות הסלולריות שזוהו.
- התכונה מופעלת במכשיר כשיש קליטה של רשת סלולרית הודית, ללא קשר לכרטיסי ה-SIM שמותקנים.
אם המכשיר תומך בכמה כרטיסי SIM, צריך לבדוק שהזיהוי של MCC של כרטיס ה-SIM פועל כמו שצריך בכל חריץ של כרטיס ה-SIM. התכונה 'גישה מהירה למצב חירום' לא כפופה לתאימות ל-Android, ולכן אין לה בדיקות של חבילה לבדיקות תאימות (CTS).
שאלות נפוצות
שאלה: מספר החירום 112 עדיין לא הופעל בהודו. האם עדיין כדאי להשתמש בו?
112 הוא המספר שמשמש בהודו כמרכז השירות הציבורי למענה לשיחות חירום (PSAP), כפי שמוגדר במערכות המשולבות לתקשורת ולתגובה למקרי חירום (IECRS). עד שה-PSAP יופעל, כל השיחות למספר 112 יועברו למספר החירום הקיים 100 (אבל זו האחריות של הספק, ולא של Android).
שאלה: מה לגבי טריגרים אחרים, כמו לחיצה משולשת על לחצן ההפעלה?
יצרני המכשירים יכולים להטמיע טריגרים נוספים. עם זאת, למרות ש-DoT בהודו מאשרת הקשה משולשת על לחצן ההפעלה של החומרה, הטריגר הזה לא נתמך בהטמעת העזר של AOSP, כי באפליקציות נפוצות מסוימות (למשל, אפליקציית המצלמה) נעשה שימוש בתנועות של לחצן ההפעלה שכוללות הקשה חוזרת על לחצן ההפעלה. אפליקציות כאלה עלולות להפריע למכשיר להתקשרות למקרה חירום, או שהמשתמש עלול להפעיל בטעות את לחצן הפאניקה בזמן שהוא מנסה להפעיל פעולות באפליקציות האלה.