1.添加消息

IntentFilter filter = new IntentFilter();

filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); //网络连接消息

filter.addAction(EthernetManager.ETH_STATE_CHANGED_ACTION); //以太网消息

this.registerReceiver(receiver, filter);

2.接收广播

private BroadcastReceiver receiver = new BroadcastReceiver() {

@Override

public void onReceive(Context context, Intent intent) {

// TODO Auto-generated method stub

final String action = intent.getAction(); //得到广播意图

if (ConnectivityManager.CONNECTIVITY_ACTION.equals(action)) { //检查网络状态

Log.i(TAG, "ConnectivityManager.CONNECTIVITY_ACTION ");

NetworkInfo info = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);

if(info == null){

//Toast.makeText(context, "Network connection successfully!", Toast.LENGTH_LONG).show();

}

int type = info.getType();

State st;

android.net.NetworkInfo.State state = info.getState(); //得到此时的连接状态

if(type == ConnectivityManager.TYPE_MOBILE){ //判断网络类型

Log.i(TAG, "TYPE_MOBILE ");

if(state == android.net.NetworkInfo.State.CONNECTED){ //判断网络状态

Log.e(TAG, "android.net.NetworkInfo.State.CONNECTED");

} else if(state == android.net.NetworkInfo.State.DISCONNECTED){

Log.e(TAG, "android.net.NetworkInfo.State.DISCONNECTED");

}

}else if(type == ConnectivityManager.TYPE_WIFI){ //WiFi

Log.i(TAG, "TYPE_WIFI ");

if(state == android.net.NetworkInfo.State.CONNECTED){ //判断网络状态

Log.e(TAG, "android.net.NetworkInfo.State.CONNECTED");

} else if(state == android.net.NetworkInfo.State.DISCONNECTED){

Log.e(TAG, "android.net.NetworkInfo.State.DISCONNECTED");

}

}else if(type == ConnectivityManager.TYPE_ETHERNET){

Log.i(TAG, "TYPE_ETHERNET ");

if(state == android.net.NetworkInfo.State.CONNECTED){ //判断网络状态

Log.e(TAG, "android.net.NetworkInfo.State.CONNECTED");

Toast.makeText(context, "Network connection successfully!", Toast.LENGTH_LONG).show();

} else if(state == android.net.NetworkInfo.State.DISCONNECTED){

Log.e(TAG, "android.net.NetworkInfo.State.DISCONNECTED");

}

}

} else {

Log.e(TAG, "other android.net.NetworkInfo.State");

}

}

};

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐