2015-10-13 6 views
1

Привет, мир, как всегда обнаружить, если я подключен или отключен от Интернета автоматически. Пример: Когда я подключился, и я выключил 3G или Wii, тост сказал, что я отключен, через 3 секунды после активации 3G или Wi-Fi, и тост говорит мне, что я подключен.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 «s расписание для запуска потока. Обратите внимание на последний 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 
} 
Смежные вопросы