2017-09-07 25 views
0

在android工作室項目中,我想檢查活動的Internet,爲此我使用這個類。它的工作,但。問題是隻有當連接不可用時才能工作。但是我只想在連接處於活動狀態並且可行時返回true。由於該應用程序使用webview,並且如果連接是星期或不活動,那麼它顯示不可達錯誤。它發生的最多與WiFi。請幫助檢查WiFi和移動數據是否有效

public boolean isConnected(Context context) { 

    ConnectivityManager cm = (ConnectivityManager) 
    context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo netinfo = cm.getActiveNetworkInfo(); 

    if (netinfo != null && netinfo.isConnectedOrConnecting()) { 
    android.net.NetworkInfo wifi = 
    cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
    android.net.NetworkInfo mobile = 
    cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 

    if((mobile != null && mobile.isConnectedOrConnecting()) || (wifi != null && 
    wifi.isConnectedOrConnecting())) 
    { 
    return true; 
    } 
    else { 
    return false; 
    } 
    } else{ 
    return false; 
    } 
} 
+0

isConnectedOrConnecting()就夠了,你會檢查連接類型嗎? – Mehdi

回答

0

使用此功能

private boolean isNetworkAvailable() { 
    ConnectivityManager connectivityManager 
      = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); 
    return activeNetworkInfo != null && activeNetworkInfo.isConnected(); 
} 

,並在使用此清單

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
0

這是我用我的工作代碼是什麼:

public static boolean isOnline(){  
     ConnectivityManager connectivityManager 
       = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); 
     return activeNetworkInfo != null && activeNetworkInfo.isConnected(); 
} 

記住在您的清單中添加網絡狀態pe rmission

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

,如果你需要在你的應用程序中使用互聯網,想想也加入這個:

<uses-permission android:name="android.permission.INTERNET" /> 

你也可以參考to this link有關網絡權限 希望官方文檔這有助於

+0

我只想返回true或false – Swister

+0

@Swister在您的清單中添加我提到的第一個授權,並調用我上面發佈的方法,如果您在線時變爲true,如果您不是,則爲false –