2016-01-18 117 views
-1

我正在登录农场字,但我有一个问题,我不明白为什么 这是我的代码:检查网络连接和空的EditText

if (isNetworkOnline()) { 
       if (!(edtuserid.getText().toString().equals("") && !(edtpass.getText().toString().equals("")))){ 
        DoLogin doLogin = new DoLogin(); 
        doLogin.execute(""); 
        Log.e("Login", "logining"); 
       }else { 
        Log.e("Login","empty"); 
       } 
      }else { 
       Log.e("Login", "no network"); 
      } 

它总是显示“logining”在logcat的..我试着给的setText = edtuserid “” 和edtpass.getText => logcat的= “logining”,和wifi它ALSE秀转 “logining”

这是我检查网络代码:

public boolean isNetworkOnline() { 
    boolean status=false; 
    try{ 
     ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo netInfo = cm.getNetworkInfo(0); 
     if (netInfo != null && netInfo.getState()==NetworkInfo.State.CONNECTED) { 
      status= true; 
     }else { 
      netInfo = cm.getNetworkInfo(1); 
      if(netInfo!=null && netInfo.getState()==NetworkInfo.State.CONNECTED) 
       status= true; 
     } 
    }catch(Exception e){ 
     e.printStackTrace(); 
     return false; 
    } 
    return status; 
} 
+0

你只是检查是否*任何*的网络连接,因此移动数据仍然是可用的wifi是否处于关闭状态。你正在测试什么设备? – 323go

+0

我在Genymotion中测试:(但是当我设置空的edittext时,它也运行@@ –

回答

1

检查连接

public boolean isInternetOn() { 

    // get Connectivity Manager object to check connection 
    ConnectivityManager connec = 
      (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 


    // Check for network connections 
    if (connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTED || 
      connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTING || 
      connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTING || 
      connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTED) { 

        return true; 

    } else if (
      connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.DISCONNECTED || 
        connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.DISCONNECTED ) { 


     return false; 
    } 
    return false; 
} 

在代码中使用

if (isInternetOn()) { 
        if (edtuserid.getText().toString().length > 0 && edtpass.getText().toString().length > 0){ 
         DoLogin doLogin = new DoLogin(); 
         doLogin.execute(""); 
         Log.e("Login", "logining"); 
        }else { 
         Log.e("Login","empty"); 
         edtuserid.setError("Invalid UserId!"); 
edtpass.setError("Invalid Password!"); 
        } 
       }else { 
        Log.e("Login", "no network"); 
       }