2016-09-09 3 views

ответ

0

вы можете использовать getActiveNetworkInfo() вместо getnetworkinfo, потому что там были какие-то другие факторы, которые не были рассмотрены до того, как состояние сети может изменяться приложение для приложения при использовании getnetworkinfo поэтому рекомендуется docs

ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
      NetworkInfo activeNetwork = connectivityManager.getActiveNetworkInfo(); 
if(activeNetwork!=null && activeNetwork.isConnectedOrConnecting()){ 
    // yeah we are online 
}else{ 
    // oops! no network 
} 

Примечания: ставит галочку дефектности тоже, чтобы подтвердить, что не является нулевым, прежде чем получить доступ к сетевому статусу

0
public class NetworkUtils { 

     public static boolean isConnected(Context context) { 
      ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
      NetworkInfo activeNetwork = connectivityManager.getActiveNetworkInfo(); 

      return (activeNetwork != null) 
        && activeNetwork.isConnectedOrConnecting(); 
     } 

} 

Этот класс используется для подключения к сети проверки в:

if(NetworkUtils.isConnected(getContext())) { 
    //Call your network related task      
    } else { 
    //Show a toast displaying no network connection 
    } 
+0

почему downvote ?? уход объяснить ?? – kgandroid

0

Используйте ConnectivityManager, чтобы получить доступ к сети. вы можете использовать BroadcastReceiver для получения постоянного обновления статуса вашей сети.

package your_package_name; 

import android.content.Context; 
import android.content.ContextWrapper; 
import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 

public class ConnectivityStatus extends ContextWrapper{ 
public ConnectivityStatus(Context base) { 
    super(base); 
} 

public static boolean isConnected(Context context){ 

    ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo connection = manager.getActiveNetworkInfo(); 
    if (connection != null && connection.isConnectedOrConnecting()){ 
     return true; 
    } 
    return false; 
} 
} 

Получайте обновления из своего сетевого класса, используйте это в своем основном классе, где обновить статус. Регистре Receiver на классе getContext().registerReceiver(receiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));

private BroadcastReceiver receiver = new BroadcastReceiver() { 
@Override 
public void onReceive(Context context, Intent intent) { 
     if(!ConnectivityStatus.isConnected(getContext())){ 
      //not connected 
     }else { 
      //connected 
     } 
    } 
}; 
+0

Действительно очень полезно для меня, спасибо – Shashi

+0

@ user2990506 Примите мой ответ, его уникальность здесь. –

0

Простой путь!

public static boolean isConnectingToInternet(@NonNull Context context) { 
     ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     if (connectivity != null) { 
      NetworkInfo info = connectivity.getActiveNetworkInfo(); 
      if (info != null) { 
       if (info.getType() == ConnectivityManager.TYPE_WIFI || info.getType() == ConnectivityManager.TYPE_MOBILE || info.getType() == ConnectivityManager.TYPE_ETHERNET || info.getType() == ConnectivityManager.TYPE_WIMAX) { 
        return true; 
       } 
      } 
     } 
     return false; 
    } 

Как использовать просто проверить

if (!isConnectingToInternet(getContext())) { 
    // here no internet connection 
} 
+0

Я использовал этот код, да много спасибо – Shashi

+0

welcome ... best luck –

Смежные вопросы