Android获取运营商信息

项目上要求做三网外放产品,将三个单网SDK自行整合成三网联合,思路大概是在OnCreate时区分运营商

设定枚举,根据取到的sim卡信息赋予枚举变量,后面三网的一些操作根据枚举进行判定


先设定运营商枚举

	enum CARRIEROPERATOR
	{
		NONE(0),
		MM(1),
		UNIPAY(2),
		EGAME(3);
		
		private int value;
		
	    private CARRIEROPERATOR(int i)
	    {
	        this.value=i;
	    } 
	    
	    public int getValue()
	    {
	        return this.value;
	    }
	}
	CARRIEROPERATOR carrierOperator = CARRIEROPERATOR.NONE;



以下是获取sim卡是哪个运营商

	public int getSimOperatorInfo()
	{
		TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
		String operatorString = telephonyManager.getSimOperator();
		
		if(operatorString == null)
		{
			return 0;
		}
		
		if(operatorString.equals("46000") || operatorString.equals("46002"))
		{
			//中国移动
			return 1;
		}
		else if(operatorString.equals("46001"))
		{
			//中国联通
			return 2;
		}
		else if(operatorString.equals("46003"))
		{
			//中国电信
			return 3;
		}
		
		//error
		return 0;
	}

在onCreate函数中调用下面的函数设定运营商

void SetCarrierOperation()
		{
			int simCode = GetSimOperatorInfo();
			switch(simCode)
			{
			case 0:
				carrierOperator = CARRIEROPERATOR.NONE;
				break;
			case 1:
				carrierOperator = CARRIEROPERATOR.MM;
				break;
			case 2:
				carrierOperator = CARRIEROPERATOR.UNIPAY;
				break;
			case 3:
				carrierOperator = CARRIEROPERATOR.EGAME;
				break;
			default:
				Log.e("unity","SetCarrierOperation error");
				break;
			}
		}

文章原创,转载请注明

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。