Android 拨打紧急号码在通话记录中显示“紧急号码”

拨打紧急号码区分于两种情况:插入SIM卡和不插入SIM卡拨打紧急号码。

1.不插SIM卡时拨打紧急号码
当没有插入SIM卡时,拨打紧急号码需要根据EccList中配置来判断哪些号码为紧急号码,在通话记录中显示“紧急号码”。
EccList配置见项目vendor\mediatek\proprietary\external\EccList中的目录文件。其中需要注意ecclist中的Condition所配置的值代表的意义
如:

0:表示在无卡的时候当紧急号码;
1:表示始终当紧急号码;
2:表示界面上显示成紧急拨号,但实际以普通方式拨出。

2.插入SIM卡时拨打紧急号码
当插入SIM卡时,拨打紧急号码时需要根据SIM卡EF_ECC 栏位中的号码来判断是否为紧急号码,并在通话记录中显示“紧急号码”。 需要注意的是MTK已经默认把“112”和“911”写入到EF_ECC中(见SIMRecords.java的实现)。

EF_ECC:EF_ECC为SIM中的某个栏位,里面记录着运营商或客户默认进去紧急号码,比如当插入香港SIM卡,可以看到ril.ecclist1: 112,911,999,112 ,前面的112,911是MTK默认对每一张SIM卡所写入的紧急号码,而后面999,112是运营商默认写入到EF_ECC栏位中紧急号码,即香港默认以999,112为紧急号码。

在代码中获取EF_ECC的紧急号码通过
simEcc = SystemProperties.get(SIM_RECORDS_PROPERTY_ECC_LIST[slotId]);获取,需要注意的地方是要正确的获取到slotId这个值。

猜你喜欢

转载自blog.csdn.net/jydzm/article/details/85854282