2013-08-17 153 views
0

當我按下我的應用程序上的按鈕打開圖像時,它顯示正在下載的圖像的進度條,然後打開。如果沒有WiFi連接,則顯示「無WiFi」錯誤消息。我用下面的代碼來檢查WiFi連接:Android可以區分丟失的互聯網連接和沒有互聯網連接嗎?

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

     NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); 
     boolean isConnected = activeNetwork.isConnectedOrConnecting(); 
     boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI; 

我想實現當失去連接時顯示錯誤消息。所以,如果你點擊圖像,並在下載的時候關閉了wifi,那麼它會顯示一條消息,說「wifi已斷開連接」。

這可能嗎?無論是連接丟失還是沒有wifi,您正在檢查是否有可用的連接,這是相同的事情

回答

0

您需要使用BroadcastReceiver,當Wi-Fi的連接狀態有連接時改變。

註冊BroadcastReceiver之前應設置以下的事情:

private class ConnectionChangeReceiver extends BroadcastReceiver { 
public void onReceive(Context context, Intent intent) { 
Log.d(tag, "Inside Broadcast Reciever"); 
CheckWifiStatus(); 
} 
} 

private void RegisterWifiWatcher() 
{ 
if(wifiWatcher == null) 
wifiWatcher = new ConnectionChangeReceiver(); 

    final IntentFilter intentFilter= new IntentFilter(); 
    intentFilter.addAction("android.net.wifi.WIFI_STATE_CHANGED"); 
    intentFilter.addAction("android.net.wifi.STATE_CHANGE");  
    registerReceiver(wifiWatcher, intentFilter); 
} 

WIFI_STATE_CHANGED:

廣播意圖的行動表明的Wi-Fi已啓用,禁用,啓用,禁用,還是個未知數。

權限在清單:

<user-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<user-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 

注: ,我們收到了不同的WiFi狀態廣播意圖有演員和他們一起,你可以訪問,以確定無線網絡的不同狀態連接。

0

當然有可能。在上面的答案中增加另一個選項:

如果無線網絡可用,您可以檢查您的代碼。

然後開始下載圖像,如果在此期間發現異常,則將消息wi-fi烤乾。