获取Android 运营商网络类型

private String getNetworkType(){
        if (telephonyManager == null) {
		telephonyManager = (TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE);  
	}
	String imsi = telephonyManager.getSubscriberId();  
        if (imsi.startsWith("46000") || imsi.startsWith("46002") || imsi.startsWith("46007"){
        // ...根据WIKI中的Code识别
        }
        // ..
}

 
http://en.wikipedia.org/wiki/Mobile_Network_Code 
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要显示物理机两张卡所属运营以及所用网络网络信号强度,需要使用TelephonyManager类和SignalStrength类。以下是代码示例: ```java TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); // 获取SIM卡1信息 int simState1 = telephonyManager.getSimState(0); if (simState1 == TelephonyManager.SIM_STATE_READY) { // 获取运营名称 String operator1 = telephonyManager.getSimOperatorName(0); // 获取网络类型 String networkType1 = getNetworkType(telephonyManager.getNetworkType(0)); // 获取信号强度 int signalStrength1 = getSignalStrength(telephonyManager.getSignalStrength(0)); Log.d("SIM1", "Operator: " + operator1 + ", Network Type: " + networkType1 + ", Signal Strength: " + signalStrength1); } // 获取SIM卡2信息 int simState2 = telephonyManager.getSimState(1); if (simState2 == TelephonyManager.SIM_STATE_READY) { // 获取运营名称 String operator2 = telephonyManager.getSimOperatorName(1); // 获取网络类型 String networkType2 = getNetworkType(telephonyManager.getNetworkType(1)); // 获取信号强度 int signalStrength2 = getSignalStrength(telephonyManager.getSignalStrength(1)); Log.d("SIM2", "Operator: " + operator2 + ", Network Type: " + networkType2 + ", Signal Strength: " + signalStrength2); } // 网络类型转换 private String getNetworkType(int networkType) { switch (networkType) { case TelephonyManager.NETWORK_TYPE_GPRS: return "GPRS"; case TelephonyManager.NETWORK_TYPE_EDGE: return "EDGE"; case TelephonyManager.NETWORK_TYPE_UMTS: return "UMTS"; case TelephonyManager.NETWORK_TYPE_HSDPA: return "HSDPA"; case TelephonyManager.NETWORK_TYPE_HSUPA: return "HSUPA"; case TelephonyManager.NETWORK_TYPE_HSPA: return "HSPA"; case TelephonyManager.NETWORK_TYPE_CDMA: return "CDMA"; case TelephonyManager.NETWORK_TYPE_EVDO_0: return "EVDO_0"; case TelephonyManager.NETWORK_TYPE_EVDO_A: return "EVDO_A"; case TelephonyManager.NETWORK_TYPE_EVDO_B: return "EVDO_B"; case TelephonyManager.NETWORK_TYPE_LTE: return "LTE"; default: return "Unknown"; } } // 信号强度转换 private int getSignalStrength(SignalStrength signalStrength) { if (signalStrength == null) { return 0; } else { int level = signalStrength.getLevel(); switch (level) { case 0: return -113; case 1: return -87; case 2: return -75; case 3: return -67; case 4: return -51; default: return 0; } } } ``` 在上面的代码中,我们首先使用TelephonyManager类获取物理机的SIM卡状态和信息。然后,我们使用getNetworkType()和getSignalStrength()方法将网络类型和信号强度转换为易于理解的字符串和整数。最后,我们使用Log.d()方法将结果打印到控制台。请注意,getSignalStrength()方法返回的是整数,表示信号强度的负值,例如“-87”表示信号强度为“-87dBm”。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值