2015-10-13 132 views
1

Hello world如何隨時檢測我是否自動連接或斷開Internet連接。 示例:當我連接並關閉3G或wifi時,吐司表示我斷開連接,在激活3G或wifi 3秒後,吐司告訴我我已連接。Android自動檢查互聯網連接

我使用這種方法,但它告訴我應用程序啓動時的連接狀態,但不在應用程序導航過程中。

ConnectivityManager manager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); 

//For 3G check 
    boolean is3g = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE) 
      .isConnectedOrConnecting(); 
//For WiFi Check 
    boolean isWifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI) 
      .isConnectedOrConnecting(); 


    if (!is3g && !isWifi) 
    { 
     Toast.makeText(getApplicationContext(),"Network Connection is OFF", Toast.LENGTH_LONG).show(); 
    } 
    else 
    { 
     Toast.makeText(getApplicationContext(),"Network Connection is ON", Toast.LENGTH_LONG).show(); 

    } 

幫助我,請

回答

2

你可以使用Timer的時間表運行一個線程。注意最後的3000這將使它每3秒運行一次。

Timer timer = new Timer(); 
timer.schedule(new TimerTask() 
{ 
    @Override 
    public void run() 
    { 
     ConnectivityManager manager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); 

     //For 3G check 
     boolean is3g = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE) 
      .isConnectedOrConnecting(); 
     //For WiFi Check 
     boolean isWifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI) 
      .isConnectedOrConnecting(); 


     if (!is3g && !isWifi) 
     { 
      Toast.makeText(getApplicationContext(),"Network Connection is OFF", Toast.LENGTH_LONG).show(); 
     } 
     else 
     { 
      Toast.makeText(getApplicationContext(),"Network Connection is ON", Toast.LENGTH_LONG).show(); 

     } 
    } 
}, 0, 3000); 
+0

不錯的解決方案。正是我需要的! –

2

你可以簡單地在任何地方使用這種方法,你喜歡:)

public static boolean isDeviceOnline(Context context) { 

    ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo networkInfo = connMgr.getActiveNetworkInfo(); 
    boolean isOnline = (networkInfo != null && networkInfo.isConnected()); 
    if(!isOnline) 
     Toast.makeText(context, " No internet Connection ", Toast.LENGTH_SHORT).show(); 

    return isOnline; 
} 

裏面你的活動中使用此代碼:

activity=this; 
if(isDeviceOnline(activity)) 
{ 
//you are online 
} 
else 
{ 
//you are offline 
}