החל מ-27 במרץ 2025, מומלץ להשתמש ב-android-latest-release
במקום ב-aosp-main
כדי ליצור תרומות ל-AOSP. מידע נוסף זמין במאמר שינויים ב-AOSP.
מספרי חירום ושיחות חירום
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
היכולת להתקשר למספרי חירום היא חיונית למכשירים, כי הם צריכים לפעול למשתמשי Android תוך עמידה בדרישות שונות של ספקי שירותים רגולטוריים ברחבי העולם. מסגרת Android מספקת למשתמשים חוויה מהירה ובטוחה של שיחות חירום.
ב-Android 10 יש תמיכה משופרת בפונקציות של שיחות חירום, בתחזוקה ובעדכונים בפלטפורמת Android המקומית, באמצעות רשימה מפורטת של מספרי חירום מה-SIM, מהרשת, מהמודם וממסד הנתונים.
ב-Android 10 יש גם תמיכה בשיחות חירום לפי סוג שירותי החירום, כמו משטרה, מכבי אש או אמבולנס. ב-Android 10 יש תמיכה משופרת במכשירים עם מספרי SIM מרובים, באמצעות שיתוף מספרי חירום מכמה מינויים ב-TelephonyManager API.
ב-Android 10 עם Radio HAL 1.4, שיחות החירום שופרו על ידי הפרדה של שיחות חירום משיחות רגילות בממשק HAL, כדי לבצע אופטימיזציה של נתיב שיחת החירום ולאפשר למכשירים לחייג למספר החירום המתאים שהוגדר במסד הנתונים של Android.
הטמעה
כדי להטמיע את הפונקציות של שיחות חירום ומספרי חירום, צריך להטמיע את ממשקי ה-API הבאים של TelephonyManager
ושל ממשק החומרה.
ממשקי API של TelephonyManager
מטמיעים את ממשקי ה-API הבאים:
- מטמיעים את
getEmergencyNumberList
כדי לקבל מספרי חירום תקפים לשיחות חירום על סמך מקור מספרי החירום, כולל האזור, כרטיסי ה-SIM, ברירת המחדל, המודם, מסד הנתונים של Android והרשת. לכל מספר חירום, צריך לציין את קטגוריית שירותי החירום המתאימה, כמו משטרה, אמבולנס וכבאות.
- מטמיעים את הפונקציה
isEmergencyNumber
כדי לזהות אם מספר טלפון הוא מספר חירום.
- מטמיעים את
isPotentialEmergencyNumber
כדי לזהות מספר כמספר חירום אם יש לו את אותן ספרות התחלה כמו של אחד ממספרי החירום.
הערכים של מקורות מספרי החירום הם:
EMERGENCY_NUMBER_SOURCE_NETWORK_SIGNALING
: המספר מגיע מהאות של הרשת
EMERGENCY_NUMBER_SOURCE_SIM
: המספר מגיע מכרטיס ה-SIM
EMERGENCY_NUMBER_SOURCE_DATABASE
: המספר מגיע ממסד הנתונים שמנוהל על ידי הפלטפורמה
EMERGENCY_NUMBER_SOURCE_MODEM_CONFIG
: המספר מופיע בתצורת המודם
EMERGENCY_NUMBER_SOURCE_DEFAULT
: המספר זמין כברירת מחדל. המספרים 112 ו-911 חייבים להיות זמינים תמיד. המספרים 000, 08, 110, 999, 118 ו-119 חייבים להיות זמינים כשאין כרטיס SIM. פרטים נוספים זמינים בקטע 10: Emergency Calls במסמך 3GPP TS 22.101.
הערכים של קטגוריות שירותי החירום הם:
UNSPECIFIED
: שיחת חירום כללית, כל הקטגוריות
POLICE
: משטרה
AMBULANCE
: אמבולנס
FIRE_BRIGADE
: שירותי כיבוי אש
MARINE_GUARD
: Marine Guard
MOUNTAIN_RESCUE
: מבצע חילוץ בהרים
MIEC
: קריאה חירום אלקטרונית (eCall) שהופעל באופן ידני (MIeC)
AIEC
: קריאה אוטומטית לעזרה (AIeC)
פרטים נוספים זמינים בקטע 10: שיחות חירום במסמך 3GPP TS 22.101.
ממשקי API לממשק חומרה
מטמיעים את emergencyDial
ב-IRadio.hal
. מטמיעים את emergencyDialResponse
ב-IRadioResponse.hal
כדי לשלוח תשובה עם סוג התגובה, המספר הסידורי ומידע על השגיאה.
כדי לדווח על רשימת מספרי החירום הנוכחית, מטמיעים את currentEmergencyNumberList
ב-IRadioIndication.hal
. מטמיעים את EmergencyNumber
ב-types.hal
, שמכיל מידע על מספר החירום, כולל כתובת המספר, קוד המדינה לנייד (MCC), קוד רשת הנייד (MNC), קטגוריית שירותי החירום, שם משאב אחיד למקרה חירום (URN) ומקור מספר החירום.
כדי לציין איך מטפלים בשיחת חירום, משתמשים ב-EmergencyCallRouting
.
אפשר לבקש שיחת חירום באמצעות ניתוב לשיחות חירום או ניתוב לשיחות רגילות, לפי הצורך. אם הערך הוא UNKNOWN
, הניתוב נקבע על סמך ההטמעה.
אימות
כדי לאמת את ההטמעה, מריצים את בדיקות CTS ו-VTS הבאות.
בדיקות CTS
בדיקות VTS
קובצי עזר
מידע נוסף על תקנים ומפרטים טכניים קשורים זמין במאמרים הבאים:
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-26 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-07-26 (שעון UTC)."],[],[],null,["# Emergency numbers and emergency calling\n\nEmergency calling is fundamental and critical for devices because they must work\nfor Android users while satisfying various carrier and regulatory requirements\nall over the world. The Android framework provides users with a fast and safe\nemergency calling experience.\n\nAndroid 10 provides improved support for emergency call\nfunctions, maintenance, and updates in the local Android platform by using a\ndetailed emergency number list from the SIM, network, modem, and database.\nAndroid 10 also supports emergency calling based on the type of emergency\nservices such as police, fire, or ambulance. Android 10 provides\nimproved support for multi-SIM\ndevices by sharing emergency numbers from multiple subscriptions in\nthe TelephonyManager API.\n\nIn Android 10 with Radio HAL 1.4, emergency calling is\nimproved by separating emergency calls from normal calls in the HAL interface\nto optimize the emergency calling path and allowing devices to dial the\nappropriate emergency number configured in the Android database.\n\nImplementation\n--------------\n\nTo implement the emergency calling and emergency number functions, implement\nthe following\n[`TelephonyManager`](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/telephony/java/android/telephony/TelephonyManager.java)\nand hardware interface APIs.\n\n### TelephonyManager APIs\n\nImplement the following APIs:\n\n- Implement [`getEmergencyNumberList`](https://developer.android.com/reference/android/telephony/TelephonyManager.html#getEmergencyNumberList()) to get valid emergency numbers for emergency calling based on the emergency number source including the locale, SIM cards, default, modem, Android database, and network. For each emergency number, specify the corresponding emergency service category such as police, ambulance, and fire.\n- Implement [`isEmergencyNumber`](https://developer.android.com/reference/android/telephony/TelephonyManager.html#isEmergencyNumber(java.lang.String)) to identify whether a phone number is an emergency number.\n- Implement [`isPotentialEmergencyNumber`](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/telephony/java/android/telephony/TelephonyManager.java#10554) to identify a number as an emergency number if it has the same starting digits as any of the emergency numbers.\n\nThe values for emergency number sources are:\n\n- `EMERGENCY_NUMBER_SOURCE_NETWORK_SIGNALING`: Number is from the network signal\n- `EMERGENCY_NUMBER_SOURCE_SIM`: Number is from the SIM card\n- `EMERGENCY_NUMBER_SOURCE_DATABASE`: Number is from the platform-maintained database\n- `EMERGENCY_NUMBER_SOURCE_MODEM_CONFIG`: Number is from the modem configuration\n- `EMERGENCY_NUMBER_SOURCE_DEFAULT`: Number is available by default. The numbers 112 and 911 must always be available. 000, 08, 110, 999, 118, and 119 must be available when no SIM is present. For more details, see *Section 10: Emergency Calls* in [3GPP TS 22.101](https://www.etsi.org/deliver/etsi_ts/122100_122199/122101/09.01.00_60/ts_122101v090100p.pdf).\n\nThe values for emergency service categories are:\n\n- `UNSPECIFIED`: General emergency call, all categories\n- `POLICE`: Police\n- `AMBULANCE`: Ambulance\n- `FIRE_BRIGADE`: Fire brigade\n- `MARINE_GUARD`: Marine Guard\n- `MOUNTAIN_RESCUE`: Mountain Rescue\n- `MIEC`: Manually Initiated eCall (MIeC)\n- `AIEC`: Automatically Initiated eCall (AIeC)\n\nFor more details, see *Section 10: Emergency Calls* in\n[3GPP TS 22.101](https://www.etsi.org/deliver/etsi_ts/122100_122199/122101/09.01.00_60/ts_122101v090100p.pdf).\n\n### Hardware interface APIs\n\nImplement\n[`emergencyDial`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/radio/1.4/IRadio.hal#159)\nin `IRadio.hal`. Implement\n[`emergencyDialResponse`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/radio/1.4/IRadioResponse.hal#55)\nin `IRadioResponse.hal` to send a response with response type, serial number,\nand error information.\n\nTo report the current list of emergency numbers, implement\n[`currentEmergencyNumberList`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/radio/1.4/IRadioIndication.hal#52)\nin `IRadioIndication.hal`. Implement\n[`EmergencyNumber`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/radio/1.4/types.hal#99)\nin `types.hal`, which contains information about the emergency number including\nthe number address, the mobile country code (MCC), mobile network code (MNC),\n[emergency service category](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/radio/1.4/types.hal#145),\nemergency uniform resource name (URN), and\n[emergency number source](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/radio/1.4/types.hal#170).\n\nTo indicate how an emergency call is handled, use\n[`EmergencyCallRouting`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/radio/1.4/types.hal#194).\nAn emergency call can be requested using emergency routing or normal call\nrouting as required. If this is `UNKNOWN`, routing is decided based on the\nimplementation.\n\nValidation\n----------\n\nTo validate your implementation, run the following CTS and VTS tests.\n\n### CTS tests\n\n- [`testGetEmergencyNumberList`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/tests/tests/telephony/current/src/android/telephony/cts/TelephonyManagerTest.java#1235)\n- [`testIsEmergencyNumber`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/tests/tests/telephony/current/src/android/telephony/cts/TelephonyManagerTest.java#1277)\n- [`testIsPotentialEmergencyNumber`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/tests/tests/telephony/current/src/android/telephony/cts/TelephonyManagerTest.java#1304)\n\n### VTS tests\n\n- [`emergencyDial`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/radio/1.4/vts/functional/radio_hidl_hal_api.cpp#24)\n- [`emergencyDial_withServices`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/radio/1.4/vts/functional/radio_hidl_hal_api.cpp#49)\n- [`emergencyDial_withEmergencyRouting`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/radio/1.4/vts/functional/radio_hidl_hal_api.cpp#75)\n\nReferences\n----------\n\nFor additional information on related technical specifications and standards,\nsee:\n\n- [3GPP TS 22.101](https://www.etsi.org/deliver/etsi_ts/122100_122199/122101/09.01.00_60/ts_122101v090100p.pdf), *Section 10: Emergency Calls*\n- [3GPP TS 24.008](https://www.etsi.org/deliver/etsi_ts/124000_124099/124008/07.15.00_60/ts_124008v071500p.pdf), *Section 9.2.13.4: Emergency Number List*\n- [3GPP TS 23.167](https://www.etsi.org/deliver/etsi_ts/123100_123199/123167/15.04.00_60/ts_123167v150400p.pdf), *Section 6: Functional description*\n- [3GPP TS 24.503](https://www.etsi.org/deliver/etsi_ts/124500_124599/124503/08.22.00_60/ts_124503v082200p.pdf), *Section 5.1.6.8.1: General*\n- [RFC 5031](https://tools.ietf.org/html/rfc5031): *A Uniform\n Resource Name (URN) for Emergency and Other Well-Known Services*"]]