【Telephony】Android紧急号码配置(Unisoc&MTK)

紧急呼叫(Emergency Call),所谓紧急呼叫是指用手机拨打112、110、119、120之类的报警或求救号码。这些号码的紧急性使各国都规定它们可以使用任何当时可用的网络。
紧急号码发配置方法有两种,一种的Unisoc的也就是AOSP的通用方法,另一种是只针对MTK平台。

一、Unisoc的配置方法

展锐在AOSP
关键配置文件vendor/sprd/platform/packages/apps/UniTelephony/uniecc/input/eccdata.txt
大致内容如下,将一个个国家的紧急号码分为一个一个countries配置。
countries配置又包含了:国家码iso_code,紧急号码eccs。
![在这里插入图片描述](https://img-blog.csdnimg.cn/9ccc731bed7846219930b80dd98ceaa9.png

1、配置紧急号码

eccs中可配置字段有phone_number、types、routing、mnc、card_flag其中必须配置phone_number,其余字段根据运营商需求进行配置,若无特定需求,可不配

phone_number:紧急号码。

types:紧急号码类型有八种类型,UNSPECIFIED、POLICE、AMBULANCE、FIRE、MARINE_GUAR、MOUNTAIN_RESCUE、MIEC、AIEC,可同时配置多个。

routing:紧急服务类别,默认配置是真紧急。配置为2,即假紧急,会以普通电话下发。

mnc 移动网络码。加载紧急号码时,会根据驻留网络或插卡的mnc去加载紧急号码。若eccs的配置中存在了配置对应mnc的紧急号码,则只加载列表中配置了对应mnc的紧急号码,不会加载未配置或不匹配的mnc的紧急号码。若当前没有mnc或mnc与eccs列表中所有的mnc都不匹配,则只加载未配置mnc的紧急号码。

card_flag:卡标志位。未配置时,有卡/无卡均会加载该紧急号码。配置为with_card时,仅在有卡时加载该紧急号码。配置为no_card时,仅在无卡时加载该紧急号码。若同时配置了mnc和card_flag,会先按mnc区分,再按card_flag区分。

另外,3GPP协议规定的无卡紧急号码112、911、000、08、110、999、118和119,无需在eccdata中额外配置。

2、找到国家码(iso_code)

MccTable.java的静态代码块中创建了有个ArrayList sTable,记录MCC和国家码的对应关系。所以我们可以可根据MCC或PLMN找到对应国家码.
MccTable文件路径:frameworks/opt/telephony/src/java/com/android/internal/telephony/MccTable.java。
在这里插入图片描述

3、紧急号码生效

1)修改/vendor/sprd/platform/packages/apps/UniTelephony/uniecc/input/路径下的eccdata.txt文件配置好紧急号码

2)初始化项目的配置环境source build/envsetup.sh

3)lunch运行 /vendor/sprd/platform/packages/apps/UniTelephony/uniecc/路径下的gen_eccdata.sh文件,在/vendor/sprd/platform/packages/apps/UniTelephony/uniecc/input/文件路径下生成一个名称为unieccdata的文件。

4)单编UniTelephony模块

5)将编译成功之后apk的push到手机中,具体push方法为

adb root
adb remount
adb push UniTelephony.apk /system_ext/priv-app/UniTelephony
adb reboot​

二、MTK配置方法

MTK在上述的AOSP紧急号码基础上增加了一个ecc_list列表用来简便紧急号码的配置。
MTK的紧急号码判断是根据不同的phone类型进行分别判断的,区分与是3gpp的还是3gpp2。对于紧急号码配置目前也是分开配置在ecc_list.xml(3GPP)和cdma_ecc_list.xml(3GPP2)。针对运营商的定制版本(ex: 中国移动定制版本OP01),也可以通过专属的配置文件进行配置,相关配置文件如下:
通用版本:

vendor/mediatek/proprietary/external/EccList/ecc_list.xml
vendor/mediatek/proprietary/external/EccList/cdma_ecc_list.xml

运营商定制版本:

vendor/mediatek/proprietary/external/EccList/ecc_list_OPXX.xml
vendor/mediatek/proprietary/external/EccList/cdma_ecc_list_OPXX.xml

(OPXX对应ProjectConfig.mk里面OPTR_SPEC_SEG_DEF值,ex:OP01_SPEC0200_SEGC)

关键配置文件:vendor/mediatek/proprietary/external/EccList/ecc_list.xml
在这里插入图片描述

Ecc:紧急号码
Category

默认是0,如果运营商有要求请询问运营商
Bit 1:Police
Bit 2:Ambulance
Bit 3:Fire Brigade
Bit 4:Marine Guard
Bit 5;Mountain Rescue
Bit 6 : Manually initiated eCall
Bit 7:Automatically initiated eCall
Bit 8:is spare and set to “0”

Condition

0:无卡的时候才是紧急号码,有卡的时候不是紧急号码
1:无卡有卡都是真紧急号码
2:有卡时,假紧急号码,界面上显示紧急拨号,但实际以普通方式拨出;无卡或者有卡(有lock)时,是真紧急号码,用紧急拨号的方式呼出;
3:有卡的时候才是紧急号码,无卡的时候不是紧急号码

Plmn

不指定或者为空:代表该紧急号码适用于所有网络
特定国家所有运营商紧急号码:460 FFF ,FFF代表适用于中国大陆所有的MNC的运营商
特定运营商紧急号码:460 01 (只适用于中国联通)

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值