public class MainActivity extends AppCompatActivity {
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.tv);
initReceiver();
}
/**
* 注册网络监听的广播
*/
private void initReceiver() {
IntentFilter timeFilter = new IntentFilter();
timeFilter.addAction("android.net.ethernet.ETHERNET_STATE_CHANGED");
timeFilter.addAction("android.net.ethernet.STATE_CHANGE");
timeFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
timeFilter.addAction("android.net.wifi.WIFI_STATE_CHANGED");
timeFilter.addAction("android.net.wifi.STATE_CHANGE");
timeFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
registerReceiver(netReceiver, timeFilter);
}
@Override
protected void onDestroy() {
super.onDestroy();
if (netReceiver != null) {
unregisterReceiver(netReceiver);
netReceiver = null;
}
}
BroadcastReceiver netReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(
Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isAvailable()) {
int type2 = networkInfo.getType();
String typeName = networkInfo.getTypeName();
tv.setText(type2 + "--" + typeName);
switch (type2) {
case 0://移动 网络 2G 3G 4G 都是一样的 实测 mix2s 联通卡
Log.d("Feeee", "有网络");
break;
case 1: //wifi网络
Log.d("Feeee", "wifi");
break;
case 9: //网线连接
Log.d("Feeee", "有网络");
break;
}
} else {// 无网络
Log.d("Feeee", "无网络");
}
}
}
};
}