Android WIFI狀態監控

來源:互聯網
上載者:User

第一類:有無wifi源及各個狀態間轉變

可監聽 WIFI_STATE_CHANGED_ACTION。(如所示,雙擊圖片可放大)

  
有五種情況:
1-1 disabled
1-2 disabling
1-3 enable
1-4 enabling
1-5 unknown
 
可通過不同的Extra值,見(雙擊可放大)獲得狀態常量:

代碼如下:
 

 

1. if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(action)) {//在此監聽wifi有無
2.             int wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, 0);
3.             
4.             switch (wifiState) {
5.             case WifiManager.WIFI_STATE_DISABLED:
6.                 updateWifiStatus(R.drawable.wifi_disable);
7.                 Toast.makeText(mContext, R.string.wifi_disable,
8.                         Toast.LENGTH_LONG).show();
9.                 break;
10.             case WifiManager.WIFI_STATE_DISABLING:
11.                 break;
12.             case WifiManager.WIFI_STATE_ENABLED:
13.                 updateWifiStatus(R.drawable.wifi_enable);
14.                 Toast.makeText(mContext, R.string.wifi_enable,
15.                         Toast.LENGTH_LONG).show();
16.                 break;
17.             case WifiManager.WIFI_STATE_ENABLING:
18.                 break;
19.             case WifiManager.WIFI_STATE_UNKNOWN:
20.                 break;
21.             }
22.         } 
 
也可通過以下代碼實現:
1. //另外一種方式
2.         mWifiMng = (WifiManager) mContext
3.                 .getSystemService(mContext.WIFI_SERVICE);
4.         
5.         switch (mWifiMng.getWifiState()) {
6.         case WifiManager.WIFI_STATE_DISABLED:
7.             updateWifiStatus(R.drawable.wifi_disable);
8.             Toast.makeText(mContext, R.string.wifi_disable,
9.                     Toast.LENGTH_LONG).show();
10.             break;
11.         case WifiManager.WIFI_STATE_DISABLING:
12.             break;
13.         case WifiManager.WIFI_STATE_ENABLED:
14.             updateWifiStatus(R.drawable.wifi_enable);
15.             Toast.makeText(mContext, R.string.wifi_enable,
16.                     Toast.LENGTH_LONG).show();
17.             break;
18.         case WifiManager.WIFI_STATE_ENABLING:
19.             break;
20.         case WifiManager.WIFI_STATE_UNKNOWN:
21.             break;
22.         }
 
第二類:wifi是否串連正常
 
可監聽:NETWORK_STATE_CHANGED_ACTION(如所示,雙擊圖片可放大)

  
有兩種狀況:
2-1串連
2-1未串連
在OnReceiver方法中,通過不同Extra值,獲得串連狀況,如,雙擊圖片放大:

代碼如下: 
 
 

1. if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(action)) { 
2.             Parcelable parcelableExtra = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); 
3.             if (null != parcelableExtra) { 
4.                 NetworkInfo networkInfo = (NetworkInfo) parcelableExtra; 
5.                 boolean isConnected = networkInfo.isAvailable(); 
6.                 updateNetworkStatus(); 
7.             } 
8.         }

 



摘自 小新專欄

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.