Android 根据网络分析运营商信息

本文介绍如何在Android中通过网络信息和TelephonyManager结合,实现运营商的判断,尤其针对双卡手机和特殊卡的场景。核心方法包括获取可用网络列表,如cmwap和cmnet来推断运营商,并提供一个接口整合这两种方式。同时,预告将分享针对双卡双待设备获取SIM卡信息的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们想获取手机的运营商信息。通常都会去调用系统的TelephonyManager类的取数据。但是很多时候可能取不到卡的信息(例如双卡手机和一些特殊卡),这样就区别不了运营商了。但是有时候我们的需求要进行不通运营商的差异化定制。这样我们可以根据网络的判断运营商。

核心就是获取可用网络列表,比如你可用网络有cmwap cmnet这样你肯定就是移动的运营商了。当然这样的办法也有不行的时候,所以我们就2套一起来。把网络和获取设备卡的信息整个写成一个接口。至于双卡双待获取sim卡信息的问题。我马上会整理一篇博客给大家。主要是根据不同的方案商来写不同的接口。

核心代码如下

private void getProviders() {
		NetWorkUtil nwu = new NetWorkUtil(this);
		String net = nwu.getNetWork();
		List<String> infos = nwu.getNetWorkList();
		if (net == null || net.equals("WIFI")) {
			if (infos.size() > 1) {
				infos.remove("WIFI");
				net = infos.get(0);
				if (net.equals("3gwap") || net.equals("uniwap")
						|| net.equals("3gnet") || net.equals("uninet")) {
					Constants.MB_ID = 2;
				} else if (net.equals("cmnet") || net.equals("cmwap")) {
					Constants.MB_ID = 1;
				} else if (net.equals("ctnet") || net.equals("ctwap")) {
					Constants.MB_ID = 3;
				}
			} else {
				Constants.MB_ID = PhoneUtil.getProviders
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值