14 Ağustos 2017 Pazartesi

ConnectivityManager Sınıfı

Giriş
Şu satırı dahil ederiz.
import android.net.ConnectivityManager;
ConnectivityManager bağlantı bilgileri için kullanılır. Bu sınıfı kullanabilmek için uygulamaya izin vermek gerekir.
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Eğer bağlantı Wifi ise şu izin de gerekir.
<uses-permission android:name="android.permission.INTERNET" />
constructor
Şöyle yaparız.
ConnectivityManager cm =
     (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
getActiveNetworkInfo
Bu metod Wifi veya mobil bağlantı tipine bakmadan bir NetworkInfo nesnesi döner. Şöyle kullanırız.
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
Bağlantı olup olmadığını şöyle anlarız.
boolean isNetworkConnected() {
  ConnectivityManager cm =
     (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
  return cm.getActiveNetworkInfo() != null;
}
getAllNetworkInfo
NetworkInfo listesi döner.Wifi ve mobil ağ bağlantılarını dolaşabilmemizi sağlar.
NetworkInfo[] info = connectivity.getAllNetworkInfo();
getNetworkInfo
NetworkInfo nesnesi döner. Belli bir tipteki ağ bağlantısına erişebilmemizi sağlar. Eğer sadece Wifi tipindeki bağlantıları kontrol etmek istersek şöyle yaparız.
NetworkInfo mWifi = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
Mobil ağın etkin olup olmadığını kontrol için şöyle yaparız.
boolean isMobileDataEnabled(){
  boolean mobileDataEnabled = false;
  ConnectivityManager cm = ...;
  try {
    Class cmClass = Class.forName(cm.getClass().getName());
    Method method = cmClass.getDeclaredMethod("getMobileDataEnabled");
    method.setAccessible(true);

    mobileDataEnabled = (Boolean)method.invoke(cm);
  } catch (Exception e) {
    e.printStackTrace();
  }
  return mobileDataEnabled;
}



Hiç yorum yok:

Yorum Gönder