您的位置:首页 > 理论基础 > 计算机网络

Android判断当前网络的类型

2016-06-30 18:41 465 查看

判断当前网络的状态

不管是通过广播进行判断还是怎么判断,首先应该在Android工程的清单文件AndroidManifest.xml中添加权限

[html] view plain copy

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


其次如果用广播方式进行判断的话还得在清单文件中注册一个广播,就以我这个工程为例:

<receiver android:name="com.example.test.NetReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>


判断网络类型的代码呢,都差不多一样,下面是关键性代码:

if (info == null) {
type = "null";
} else if (info.getType() == ConnectivityManager.TYPE_WIFI) {
type = "wifi";
} else if (info.getType() == ConnectivityManager.TYPE_MOBILE) {
int subType = info.getSubtype();
if (subType == TelephonyManager.NETWORK_TYPE_CDMA
|| subType == TelephonyManager.NETWORK_TYPE_GPRS
|| subType == TelephonyManager.NETWORK_TYPE_EDGE) {
type = "2g";
} else if (subType == TelephonyManager.NETWORK_TYPE_UMTS
|| subType == TelephonyManager.NETWORK_TYPE_HSDPA
|| subType == TelephonyManager.NETWORK_TYPE_EVDO_A
|| subType == TelephonyManager.NETWORK_TYPE_EVDO_0
|| subType == TelephonyManager.NETWORK_TYPE_EVDO_B) {
type = "3g";
} else if (subType == TelephonyManager.NETWORK_TYPE_LTE) {// LTE是3g到4g的过渡,是3.9G的全球标准
type = "4g";
}


获取到字段“type”的值你就可以根据你自己的业务来进行网络类型的判断了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: