Is Internet Connection Available?


Araştırdığımız taktirde bir çok yerde bulabileceğimiz bir sonucu var, Android cihazlarda internete nasıl bağlanılır, bağlantı nasıl kontrol edilir?..
Gelin bunu bir class yardımı ile yapalım ve ihtiyaç olduğu zaman gerekli yerde o class’ tan bir instance oluşturup kolayca kullanalım. Defalarca bağlantı kontrol kodları yazmamıza gerek kalmasın 🙂

Şimdi ConnectionDetector adında bir class oluşturalım.

Tamam dedikten sonra koda geçelim. İlk işimiz bir Constructor oluşturmak, parametre olarak da içine Context alıyoruz. Tabi Android’ te normalde constructor yok!, Onun yerine onCreate() metodu var, ama biz sade bir java class’ ı yapacağız, ve bunu istediğimiz her yerde kullanabileceğiz.

public ConnectionDetector(Context context){
    this._context = context;
}

Daha sonra boolean bir metod oluşturalım, adı da isConnectingToInternet olsun.

public boolean isConnectingToInternet(){
    ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connectivity != null)
    {
    	NetworkInfo[] info = connectivity.getAllNetworkInfo();
    	if (info != null)
    		for (int i = 0; i < info.length; i++)
    			if (info[i].getState() == NetworkInfo.State.CONNECTED)
    			{
    				return true;
    			}
    }
    return false;
}

Burada ConnectivityManager her türlü bağlantıya ulaşmamızı sağlar. getSystemService(Context.CONNECTIVITY_SERVICE) yardımı ile de var olan bağlantıyı çekiyoruz. Daha sonra NetworkInfo’ dan bir array oluşturuyoruz. Bu array’ in içine de var olan bağlantının durumunu ekliyoruz, eğer internete bağlı ise true değilse false bir değer döndürüyor.

Class’ ımızı yazdık, peki bunu nasıl kullanacağız? Global değişken olarak şu şekilde tanımlıyoruz.

// Connection detector class' ından bir instance oluşturduk.
ConnectionDetector cd;

Daha sonra onCreate() metodunun içinde:

// İnternet durumua ulaşıyoruz, değer ya true ya da false dönecek..
isInternetPresent = cd.isConnectingToInternet();

Basit bir şekilde if() yardımı ile boolean değeri kontrol ediyoruz.

// check for Internet status
if (isInternetPresent) {
        // İnternet bağlantısı sağlanıyor...
        // HTTP talebi isteyebiliriz...
}
else{
        // Bağlantı sağlanamıyor!..
}

Sonuç olarak:
ConnectionDetector.java

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
 
public class ConnectionDetector {
 
    private Context _context;
 
    public ConnectionDetector(Context context){
        this._context = context;
    }
 
    public boolean isConnectingToInternet(){
    	ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
    	if (connectivity != null)
    	{
    		NetworkInfo[] info = connectivity.getAllNetworkInfo();
    		if (info != null)
    			for (int i = 0; i < info.length; i++)
    				if (info[i].getState() == NetworkInfo.State.CONNECTED)
    				{
    					return true;
    				}
    	}
    	return false;
    }
}
Reklamlar

25 Eyl 2012 tarihinde Android içinde yayınlandı ve , , , , , olarak etiketlendi. Kalıcı bağlantıyı yer imlerinize ekleyin. 2 Yorum.

Bir Yanıt Bırakın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: