[android] android 获取网络连接信息

效果图:
[android] android 获取网络连接信息
 

 
工具类
/**
* 获取网络连接信息

* 

* 根据NetworkInfo可以知道有很多的连接方式和信息

* 

* ① 当没有任何可用网络的时候,networkinfo为null 判断networkinfo是否为null

* 

* ② 当只有wifi网络或者wifi网络和移动网络同时存在的时候,返回wifi网络连接信息

* 

* NetworkInfo参数如下:

* 

* detailedState:CONNECTED(连接状态)

* 

* extraInfo:yiteng1(wifi网络名称)

* 

* isAvaiable:true(是否可用)

* 

* networkType:1

* 

* state:CONNECTED

* 

* subtype:0

* 

* typeName:WIFI(网络类型名称)

* 

* ③ 当只有移动网络的时候,返回移动网络连接信息

* 

* NetworkInfo参数如下:

* 

* detailedState:CONNECTED(连接状态)

* 

* extraInfo:cmnet(移动网络名称)

* 

* isAvaiable:true

* 

* networkType:0

* 

* state:CONNECTED

* 

* subtype:2

* 

* typeName:mobile(网络类型名称)

* 

* @param context

* @return

*/

public static NetworkInfo getActiveNetwork(Context context) {

    if (context == null) {return null;}

    ConnectivityManager mConnMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

    if (mConnMgr == null) {return null;}

    // 获取活动网络连接信息

    NetworkInfo aActiveInfo = mConnMgr.getActiveNetworkInfo();

    return aActiveInfo;

}




使用方法:在需要监听网络的页面

   

 NetworkInfo networkInfo = GetSystemInfo.getActiveNetwork(this);

    if (networkInfo == null) {

        ToastUtils.showCustomToastLong("无可用网络连接,请检查网络设置");

    } else {

        if (networkInfo.isAvailable() == false) {

            ToastUtils.showCustomToastLong("无可用网络连接,请检查网络设置");

        } else {

            String networkType = networkInfo.getTypeName();

                if (AppConstants.NETWORK_WIFI.equalsIgnoreCase(networkType)) {

                    ToastUtils.showCustomToastLong("已连接到wifi网络"+ networkInfo.getExtraInfo());

                } else if (AppConstants.NETWORK_MOBILE.equalsIgnoreCase(networkType)) {

                    ToastUtils.showCustomToastLong("您当前使用的是移动网络");

                }

            }

        }