亲测Android wifi状态三种播音-最后一种就不说了
亲测Android wifi状态三种广播--最后一种就不说了
public class NetworkConnectChangedReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { LogTag.showTAG_e(this.getClass().getSimpleName(), intent.getAction()); if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(intent.getAction())) {//这个监听wifi的打开与关闭,与wifi的连接无关 int wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, 0); LogTag.showTAG_e("WIFI状态", "wifiState"+wifiState); switch (wifiState) { case WifiManager.WIFI_STATE_DISABLED: break; case WifiManager.WIFI_STATE_DISABLING: break; case WifiManager.WIFI_STATE_ENABLED: break; case WifiManager.WIFI_STATE_ENABLING: break; case WifiManager.WIFI_STATE_UNKNOWN: break; } } // 这个监听wifi的连接状态即是否连上了一个有效无线路由,当上边广播的状态是WifiManager.WIFI_STATE_DISABLING,和WIFI_STATE_DISABLED的时候,根本不会接到这个广播。 // 在上边广播接到广播是WifiManager.WIFI_STATE_ENABLED状态的同时也会接到这个广播,当然刚打开wifi肯定还没有连接到有效的无线 if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(intent.getAction())) { Parcelable parcelableExtra = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); if (null != parcelableExtra) { NetworkInfo networkInfo = (NetworkInfo) parcelableExtra; State state = networkInfo.getState(); boolean isConnected = state==State.CONNECTED;//当然,这边可以更精确的确定状态 LogTag.showTAG_e(this.getClass().getSimpleName(), "isConnected"+isConnected); if(isConnected){ }else{ } } } //这个监听网络连接的设置,包括wifi和移动数据的打开和关闭。待完善.. if(ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())){ final ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); final NetworkInfo info = connectivityManager.getActiveNetworkInfo(); if (info != null) { LogTag.showTAG_e("连接状态", "open"); } else { LogTag.showTAG_e("连接状态", "closed"); } } } }