我们想获取手机的运营商信息。通常都会去调用系统的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