紧急号码和紧急呼叫

紧急呼叫对于设备而言至关重要且必不可少,因为它们必须在满足全球各种运营商和监管要求的同时,为 Android 用户提供服务。Android 框架为用户提供快速且安全的紧急呼叫体验。

Android 10 通过使用来自 SIM 卡、网络、调制解调器和数据库的详细紧急号码列表,改进了对本地 Android 平台中紧急呼叫功能、维护和更新的支持。Android 10 还支持基于紧急服务类型(例如警察、消防或救护车)的紧急呼叫。Android 10 通过在 TelephonyManager API 中共享来自多个订阅的紧急号码,改进了对多 SIM 卡设备的支持。

在搭载 Radio HAL 1.4 的 Android 10 中,紧急呼叫得到了改进,方法是在 HAL 接口中将紧急呼叫与正常呼叫分开,以优化紧急呼叫路径,并允许设备拨打 Android 数据库中配置的相应紧急号码。

实现

要实现紧急呼叫和紧急号码功能,请实现以下 TelephonyManager 和硬件接口 API。

TelephonyManager API

实现以下 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 必须始终可用。当没有 SIM 卡时,000、08、110、999、118 和 119 必须可用。如需了解详情,请参阅 3GPP TS 22.101 中的第 10 节:紧急呼叫

紧急服务类别的值包括:

  • UNSPECIFIED:一般紧急呼叫,所有类别
  • POLICE:警察
  • AMBULANCE:救护车
  • FIRE_BRIGADE:消防队
  • MARINE_GUARD:海岸警卫队
  • MOUNTAIN_RESCUE:山区救援
  • MIEC:手动发起的 eCall (MIeC)
  • AIEC:自动发起的 eCall (AIeC)

如需了解详情,请参阅 3GPP TS 22.101 中的第 10 节:紧急呼叫

硬件接口 API

IRadio.hal 中实现 emergencyDial。在 IRadioResponse.hal 中实现 emergencyDialResponse,以发送包含响应类型、序列号和错误信息的响应。

要报告当前紧急号码列表,请在 IRadioIndication.hal 中实现 currentEmergencyNumberList。在 types.hal 中实现 EmergencyNumber,其中包含有关紧急号码的信息,包括号码地址、移动国家/地区代码 (MCC)、移动网络代码 (MNC)、紧急服务类别、紧急统一资源名称 (URN) 和 紧急号码来源

要指明如何处理紧急呼叫,请使用 EmergencyCallRouting。可以根据需要使用紧急路由或正常呼叫路由请求紧急呼叫。如果此值为 UNKNOWN,则路由将根据实现来决定。

验证

要验证您的实现,请运行以下 CTS 和 VTS 测试。

CTS 测试

VTS 测试

参考资料

如需了解有关相关技术规范和标准的更多信息,请参阅: