Android 获取当前手机运营商判断分析

无情 阅读:128 2021-04-01 13:17:49 评论:0

前言:应用接SDK 基本需要先三大运营基商渠道,然后再上线其他平台。有时候,需要把三大运营商的SDK融合在一个包内,但是又需要根据当前手机卡的运营商作判断,再决定支付方式。

获取手机运营商名,我们根据手机IMSI号来获取,前3位460 是国家,接着后面2位 00和02是 中国移动,01是中国联通,03是中国电信。

下面是代码实现:

/** 
 * 返回手机运营商名称,在调用支付前调用作判断 
 * @param telephonyManager 
 * @return 
 */ 
public String getProvidersName(TelephonyManager telephonyManager){ 
    String ProvidersName = null; 
    telephonyManager = (TelephonyManager) myActivity.getSystemService(Context.TELEPHONY_SERVICE); 
    String IMSI = telephonyManager.getSubscriberId(); 
    if( IMSI == null){ 
        return "unknow"; 
    } 
 
    if(IMSI.startsWith("46000") || IMSI.startsWith("46002")){ 
        ProvidersName = "中国移动"; 
    }else if(IMSI.startsWith("46001")){ 
        ProvidersName = "中国联通"; 
    }else if (IMSI.startsWith("46003")) { 
        ProvidersName = "中国电信"; 
    } 
 
    try { 
        ProvidersName = URLEncoder.encode(""+ProvidersName, "UTF-8"); 
    } catch (UnsupportedEncodingException e) { 
        e.printStackTrace(); 
    } 
    Log.e("TAG_IMSI", "==== 当前卡为:"+ProvidersName); 
    return ProvidersName; 
} 
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
排行榜
关注我们

可以免费观看全网VIP电影的公众号