在源碼開發(fā)中,有很多時候是需要配置運營商相關的內(nèi)容的盖奈,這個時候就不需要根據(jù)不同的運營商配置不同的屬性,通常分為以下幾個步驟完成
第一步:通過mccmnc(移動國家代碼+移動網(wǎng)絡代碼)確認CarrierId
代碼目錄為 packages/providers/TelephonyProvider/assets/carrier_list.textpb
![]ot}(nf@y$il.png](https://upload-images.jianshu.io/upload_images/14506461-367eb58366588eb0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如上面的圖片中就是中國聯(lián)通和中國移動對應的carrierId若治,分別為1436瘦黑,1435
第二步:根據(jù)CarrierId找到對應的修改文件
代碼目錄為packages/app/CarrierConfig/assets
[圖片上傳失敗...(image-bdb6cf-1591010351293)]
如上面的圖片中就是中國移動和中國聯(lián)通carrierId對應的文件
[圖片上傳失敗...(image-6789e-1591010351293)]
如上圖就是我添加的Dialer模塊語音信箱的功能,需求是要插入中國聯(lián)通植锉,電信辫樱,移動卡能夠編輯語音信箱
注意:res/xml/vendor中的修改是對所有運營商有效,一般來講需要問清楚需求汽煮,為哪幾個運營商配置搏熄,不可一刀切
[圖片上傳失敗...(image-3997d0-1591010351293)]
第三步:驗證改動效果
1.刪除手機緩存設置/data/user_de/0/com.android.phone/files中的所有文件
2.插入運營商卡驗證
[圖片上傳失敗...(image-6e320a-1591010351293)]
因為我的手機插入的是聯(lián)通卡棚唆,所以這個目錄下面有兩個問題文件暇赤,一個是默認文件vender.xml,另一個是運營商的文件1436.xml宵凌,可以pull出來看這個文件里面的值是否有改變鞋囊,一般來講,優(yōu)先讀取相關的運營商文件瞎惫,后讀取vender文件
特殊情況
當在carrier_list下通過mccmnc無法搜到carrierId溜腐,可以直接在packages/app/CarrierConfig/assets中添加配置信息,但是一定要先搜索瓜喇,因為CarrierId的優(yōu)先級高于直接建立挺益,所以你會在packages/app/CarrierConfig/assets下面看見很多類似下面圖片中的定義
[圖片上傳失敗...(image-631c6d-1591010351293)]
一些常見的配置
vowifi
默認WiFi Calling的開關為false,需要配置默認為開乘寒,添加:
<boolean name="carrier_default_wfc_ims_enabled_bool" value="true"/>
默認 WiFi Calling是WiFi優(yōu)先望众,需要配置數(shù)據(jù)優(yōu)先,添加:
<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"/>