2013-08-07 178 views
1

在我的Android應用程序中,我有一個按鈕,單擊時,打開另一個類,使網絡調用。檢查按鈕點擊網絡狀態

我正在嘗試檢查單擊按鈕時的數據連接,並且如果沒有連接,我想顯示Toast消息。

這裏是我的onclick方法,因爲它代表: -

public void GoToZone(View v) 
{ 



    if (android.os.Build.VERSION.SDK_INT > 9) { 
      StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
      StrictMode.setThreadPolicy(policy); 
      Intent myIntent = new Intent(MainActivity.this, CustomizedListViewStudentZone.class); 
      startActivityForResult(myIntent, 0); 
     } 


    else {    
     Context context = getApplicationContext(); 
     CharSequence text = "There seems to be a connection issue"; 
     int duration = Toast.LENGTH_LONG; 
     Toast toast = Toast.makeText(context, text, duration); 
     toast.show(); 
    } 



} 

我怎麼能檢查連接時按下按鈕,如果有一個連接,然後用上面的,如果繼續存在是不是然後顯示消息說「無連接」

我真的很努力執行檢查。

感謝

回答

0
someMethod(){ 
    if (isNetworkAvailable()) { 
     Toast.makeText(this, "woohoo!", Toast.LENTH_SHORT).show(); 
    } else { 
     Toast.makeText.(this, "booo..", Toast.LENGTH_SHORT).show(); 
    } 
} 


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

Source

+0

我有點困惑,以至於如何將其融入我已有的東西。謝謝 –

+0

首先,你必須解釋你爲什麼需要這一行(檢查):'if(android.os.Build.VERSION.SDK_INT> 9){' –

0
public boolean isConnectingToInternet(){ 
    ConnectivityManager connectivity = (ConnectivityManager) Context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     if (connectivity != null) 
     { 
      NetworkInfo[] info = connectivity.getAllNetworkInfo(); 
      if (info != null) 
       for (int i = 0; i < info.length; i++) { 
        Log.d("Nzm", "info:"+info[i]); 
        if (info[i].getState() == NetworkInfo.State.CONNECTED) 
        { 
         return true; 
        } 
       } 

     } 
     return false; 
} 
0

簡單地使用它。

從任何地方調用此代碼,它會返回您當前的網絡狀態。

public static boolean isInternetAvailable(Context c) 
    { 
     ConnectivityManager connectivityManager 
     = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); 
     return activeNetworkInfo != null && activeNetworkInfo.getState() == NetworkInfo.State.CONNECTED; 
    } 

如果連接則返回true,否則返回false。對其輸出採取任何所需的操作。

注意:它是一種靜態方法。因此,如果您只想從Android Activity類中調用它,請移除static關鍵字。