不同android版本,文件位置不同,修改位置也不尽相同。
整个列表: frameworks/base/core/res/res/xml/apns.xml
当前使用: development/data/etc/apns-conf.xml
android8:
vendor\qcom\proprietary\telephony-apps\etc\apns-conf.xml
vendor\qcom\proprietary\telephony-apps\etc\spn-conf.xml
spn 运营商名称:
高通修改的地方: vendor\qcom\proprietary\qcril\qcril_qmi\qcril_qmi_nas2.c:
qcril_qmi_ons_memory_list
当前使用的时候上面这个数组优先。
MCC/MNC参考 http://es.wikipedia.org/wiki/MCC/MNC
MSimTelephonyManager.getDefault().getSimOperatorName(index);
public String getSimOperatorName(int subscription) {
String alpha = getTelephonyProperty(
subscription == 0 ? TelephonyProperties.PROPERTY_ICC_OPERATOR_ALPHA
: TelephonyProperties.PROPERTY_ICC2_OPERATOR_ALPHA, "");
if ("".equals(alpha)) {
String numeric = getSimOperator(subscription);
if (numeric != null && numeric.length() > 3)
alpha = (String) SpnProvider.getSPNByMCCMNC(sContext, numeric);
} else {
LocaleNamesParser localeNamesParser = new LocaleNamesParser(sContext,"MSimTelephonyManager",
com.android.internal.R.array.origin_carrier_names,
com.android.internal.R.array.locale_carrier_names);
alpha = localeNamesParser.getLocaleName(alpha).toString();
}
return alpha;
frameworks\base\core\java\android\provider\SpnProvider.java:
alpha = (String) SpnProvider.getSPNByMCCMNC(sContext, numeric);
frameworks\base\core\res\res\values\arrays.xml: origin_carrier_names
一些虚拟运营商要求显示名字跟卡里读出来不一致的话,可修改如下:
frameworks\base\telephony\java\android\telephony\SubscriptionInfo.java
public CharSequence getDisplayName() {
android.util.Log.d("Sukha:this=", this.toString());
if (android.text.TextUtils.isEmpty(mDisplayName)) {
return this.mDisplayName;
} else if (mDisplayName.equals("TM")) return "GLOBE(TM)";
else if (mDisplayName.equals("ABS-CBN")) return "GLOBE(ABS-CBN)";
else if (mDisplayName.equals("Talk N Text")) return "Smart Prepaid (TNT)";
else return this.mDisplayName;
}
public CharSequence getCarrierName() {
if (android.text.TextUtils.isEmpty(mCarrierName)) {
return this.mCarrierName;
}
String carrier = mCarrierName.toString();
if (android.text.TextUtils.isEmpty(mDisplayName)) {
return this.mCarrierName;
} else if (mDisplayName.equals("TM")) {
if (carrier.endsWith("TM")) {
return (carrier.substring(0,carrier.length()-2) + "GLOBE(TM)");
} else {
return (carrier + " - GLOBE(TM)");
}
} else if (mDisplayName.equals("ABS-CBN")) {
if (carrier.endsWith("ABS-CBN")) {
return (carrier.substring(0,carrier.length()-7) + "GLOBE(ABS-CBN)");
} else {
return (carrier + " - GLOBE(ABS-CBN)");
}
} else if (mDisplayName.equals("Talk N Text")) {
if (carrier.endsWith("Talk N Text")) {
return (carrier.substring(0,carrier.length()-11) + "Smart Prepaid (TNT)");
} else {
return (carrier + " - Smart Prepaid (TNT)");
}
} else return this.mCarrierName;
}