您的位置:首页 > 移动开发 > Android开发

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

2017-04-05 19:11 232 查看
前言:应用接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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐