查到原因是device\qcom\common\device\overlay\packages\apps\CarrierConfig\res\xml\vendor.xml文件中 AT&T运营商卡 config_enable_display_14digit_imei的默认值为true导致。
客户反馈插AT&T运营商卡,*#06#查询IMEI只显示14,而我们的IMEI号应该是15位。我们分析查到
\frameworks\opt\telephony\src\java\com\android\internal\telephony\GsmCdmaPhone.java
public String getImei() {
CarrierConfigManager configManager = (CarrierConfigManager)
mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE);
boolean enable14DigitImei = configManager.getConfigForSubId(getSubId())
.getBoolean("config_enable_display_14digit_imei");
if (enable14DigitImei && !TextUtils.isEmpty(mImei)
&& mImei.length() > IMEI_14_DIGIT) {
return mImei.substring(0, IMEI_14_DIGIT);
}
return mImei;
}
device\qcom\common\device\overlay\packages\apps\CarrierConfig\res\xml\vendor.xml文件中 AT&T运营商卡 config_enable_display_14digit_imei的默认值为true导致