插入某电信卡运营商名称不显示的问题

当手机插入 某些国外的小运营商SIM卡时,在下拉栏中打开数据连接,运营商名称显示为空。原因就是在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;
}

在上面的代码中,有这行: alpha = (String) SpnProvider.getSPNByMCCMNC(sContext, numeric);这个就是读取系统中默认有的运营商名称的地方,而系统默认提供的运营商名称是在framework\base\core\java\android\provider\SpnProvider.java中提供的,我们只要知道该运营商的mcc = xx, mnc = xx就可以自己添加上去了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值