2012-07-25 71 views
3

我需要檢測Android設備是否連接到互聯網或斷開連接...如果沒有連接,應用程序將無法打開..我已經嘗試了很多次。 。但我失敗了..這是我潑的源代碼:如何在飛濺上閱讀互聯網狀態android

private Handler splashHandler = new Handler(); 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Runnable r = new Runnable(){ 
     public void run(){ 
      Intent brain = new Intent(Splash.this, MainMenu.class); 
      startActivity(brain); 
      finish(); 
     } 
    }; 
    setContentView(R.layout.splashscreen); 
    splashHandler.postDelayed(r, 2000); 
} 

public void onResume(Bundle savedInstanceState){ 
    super.onResume(); 
} 

}

,如果有一個人幫我,給我一個源代碼..請告訴我,我必須把它..

回答

2

由此SO發表:Detect whether there is an Internet connection available on Android

這裏是你的代碼應該是什麼樣子:

private Handler splashHandler = new Handler(); 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Runnable r = new Runnable(){ 
     public void run(){ 
      Intent brain = new Intent(Splash.this, MainMenu.class); 
      startActivity(brain); 
      finish(); 
     } 
    }; 
    setContentView(R.layout.splashscreen); 
    if(isNetworkAvailable()) 
     splashHandler.postDelayed(r, 2000); 
    else { 
     //Notify user they aren't connected 
     Toast.makeText(getApplicationContext(), "You aren't connected to the internet.", Toast.LENGTH_SHORT).show(); 
     //close the app 
     finish(); 
    } 
} 

public void onResume(Bundle savedInstanceState){ 
    super.onResume(); 
} 

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

正如上面的鏈接說,你還需要添加:

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

AndroidManifest.xml文件...

+0

謝謝你..它的工作..:D – Menma 2012-07-29 23:47:42

+0

很高興我能幫到你。請記住標記爲答案! – 2012-07-30 05:11:14

0

看看this。這是一個BroadcastReciver,採取行動ConnectivityManager.CONNECTIVITY_ACTION.,它允許系統在網絡連接發生變化時進行。

我希望它有幫助。