美文网首页
安卓源码如何配置一些运营商属性

安卓源码如何配置一些运营商属性

作者: 编程小记 | 来源:发表于2020-06-14 23:24 被阅读0次

    在源码开发中,有很多时候是需要配置运营商相关的内容的,这个时候就不需要根据不同的运营商配置不同的属性,通常分为以下几个步骤完成

    第一步:通过mccmnc(移动国家代码+移动网络代码)确认CarrierId

    代码目录为 packages/providers/TelephonyProvider/assets/carrier_list.textpb
    ![]ot}(nf@y$il.png](https://img.haomeiwen.com/i14506461/367eb58366588eb0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    如上面的图片中就是中国联通和中国移动对应的carrierId,分别为1436,1435

    第二步:根据CarrierId找到对应的修改文件

    代码目录为packages/app/CarrierConfig/assets

    [图片上传失败...(image-bdb6cf-1591010351293)]

    如上面的图片中就是中国移动和中国联通carrierId对应的文件

    [图片上传失败...(image-6789e-1591010351293)]

    如上图就是我添加的Dialer模块语音信箱的功能,需求是要插入中国联通,电信,移动卡能够编辑语音信箱

    注意:res/xml/vendor中的修改是对所有运营商有效,一般来讲需要问清楚需求,为哪几个运营商配置,不可一刀切

    [图片上传失败...(image-3997d0-1591010351293)]

    第三步:验证改动效果

    1.删除手机缓存设置/data/user_de/0/com.android.phone/files中的所有文件

    2.插入运营商卡验证

    [图片上传失败...(image-6e320a-1591010351293)]

    因为我的手机插入的是联通卡,所以这个目录下面有两个问题文件,一个是默认文件vender.xml,另一个是运营商的文件1436.xml,可以pull出来看这个文件里面的值是否有改变,一般来讲,优先读取相关的运营商文件,后读取vender文件

    特殊情况

    当在carrier_list下通过mccmnc无法搜到carrierId,可以直接在packages/app/CarrierConfig/assets中添加配置信息,但是一定要先搜索,因为CarrierId的优先级高于直接建立,所以你会在packages/app/CarrierConfig/assets下面看见很多类似下面图片中的定义

    [图片上传失败...(image-631c6d-1591010351293)]

    一些常见的配置

    vowifi

    默认WiFi Calling的开关为false,需要配置默认为开,添加:

    <boolean name="carrier_default_wfc_ims_enabled_bool" value="true"/>

    默认 WiFi Calling是WiFi优先,需要配置数据优先,添加:

    <int name="carrier_default_wfc_ims_mode_int" value="1"/>

    volte

    配置支持volte功能:

    <boolean name="carrier_volte_available_bool" value="true"/>

    默认支持video calling功能

    <boolean name="carrier_vt_available_bool" value="true"/>

    voice mail

    语音信箱可编辑

    <boolean name="oem_key_remove_vm_num_editable_bool" value="false"/>

    相关文章

      网友评论

          本文标题:安卓源码如何配置一些运营商属性

          本文链接:https://www.haomeiwen.com/subject/ekoszhtx.html