Oca 16

Eğer uygulamamız içerisinde internet kullanmamız gerekiyorsa, (mesela internetten bir şey indirme, veri çekme, veri gönderme vb.) her şeyden önce uygulamamızın o sırada telefonun internete bağlı olup olmadığını kontrol etmesi gerekir.

Bu kontrol yapılmadığı takdirde, o sırada telefon internete bağlı değilse uygulama hata verecektir. Bu gibi durumlar uygulamanın kalitesini aşağı yönde etkileyecektir. Çünkü uygulamamız, içinde hata bulunmamasına rağmen internet bağlantı sorunundan dolayı hata kullanıcı hata ile karşılaşacaktır.

Bu gibi durumların oluşmaması için uygulamanın internet bağlantısı gerektiği yerlerde gerekli kontrolleri yapmalıyız. Eğer o sırada telefonun internet bağlantısı yoksa kullanıcıyı bu konuda uyarmalıyız.

Bunun için öncelikle uygulamamıza bir kontrol metodu yazmalıyız. Bu metodu yazmadan önce yeni bir proje başlatalım ve ardından başlangıç sayfası class’ının içerisine gelelim.

internetBaglantiKontrol() isimli bool türünde değer döndüren (bağlantı mevcut değilse false, mevcutsa true) bir değişken tanımlayalım.

boolean internetBaglantiKontrol() {

        ConnectivityManager baglantiYonetici = (ConnectivityManager) getSystemService (Context.CONNECTIVITY_SERVICE);

if (
baglantiYonetici.getActiveNetworkInfo().isAvailable()&&
baglantiYonetici.getActiveNetworkInfo().isConnected()&&
baglantiYonetici.getActiveNetworkInfo() != null) {

        return true;

        } else {

        return false; 
        }
    }

Yukarıdaki metodda da gördüğünüz gibi ConnectivityManager kütüphanesi aracılığıyla internet bağlantı kontrol işlemini gerçekleştiriyoruz.
Bundan sonra yapmamız gereken çok basit.
Uygulamamızda nerede bu kontrolü yaptırmak istiyorsak, (onCreate() metodunda, yada herhangi bir post işlemi öncesinde vb.) metodu orada çağırmamız yeterli.
Biz kontrolümüzü sayfamızın onCreate() metodu içerisine yapalım.

@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

	if(!internetBaglantiKontrol())
        {
AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setMessage("İnternet Bağlantınızı Kontrol Edin.");
alertDialog.setButton("Tamam", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {
                  System.exit(0); //Uygulamadan çıkış yapmamızı sağlar.
               }
            });
alertDialog.show();
        }
        else{
Toast.makeText(getApplicationContext(), "Internet Bağlantınız Mevcut", Toast.LENGTH_LONG).show();
  //Burada yapmak istediğiniz işlemleri yazabilirsiniz.Yeni bir sayfaya geçiş,Post etme vb.
        } 
	}

Yukarıdaki kod yapısında da anlaşılacağı gibi If bloğu içerisinde internet kontrolü yaptırdık. Bağlantı mevcut değilse uyarı verdirerek Tamam butonu ile programı sonlandırdık. Bağlantı mevcutsa “Internet Bağlantınız Mevcut” diye mesaj verdirdik.

Not: Eğer emülatörde çalışıyorsanız, bilgisayarın internetini kesip sanal makinada kodu deneseniz bile size her seferinde internet bağlantısının mevcut olduğuna dair mesaj dönebilir.
Fakat uygulamayı export edip, telefon üzerinde denediğinizde sorunsuz bir şekilde çalıştığını göreceksiniz.

Ekran Çıktısı
16.1

2 Yorum “Internet Bağlantısı Kontrolü”

  1. avatar Emre diyor ki:

    import android.app.Activity;
    import android.app.AlertDialog;
    import android.content.Context;
    import android.content.DialogInterface;
    import android.net.ConnectivityManager;
    import android.os.Bundle;
    import android.widget.Toast;

    public class Main extends Activity {

    boolean internetBaglantiKontrol() {

    ConnectivityManager baglantiYonetici = (ConnectivityManager) getSystemService (Context.CONNECTIVITY_SERVICE);

    if (
    baglantiYonetici.getActiveNetworkInfo().isAvailable()&&
    baglantiYonetici.getActiveNetworkInfo().isConnected()&&
    baglantiYonetici.getActiveNetworkInfo() != null) {

    return true;

    } else {

    return false;
    }

    }

    @SuppressWarnings(“deprecation”)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    if(!internetBaglantiKontrol())
    {
    AlertDialog alertDialog = new AlertDialog.Builder(this).create();
    alertDialog.setMessage(“İnternet Bağlantınızı Kontrol Edin.”);
    alertDialog.setButton(“Tamam”, new DialogInterface.OnClickListener() {

    public void onClick(final DialogInterface dialog, final int which) {
    System.exit(0); //Uygulamadan çıkış yapmamızı sağlar.
    }
    });
    alertDialog.show();
    }
    else{
    Toast.makeText(getApplicationContext(), “Internet Bağlantınız Mevcut”, Toast.LENGTH_LONG).show();
    //Burada yapmak istediğiniz işlemleri yazabilirsiniz.Yeni bir sayfaya geçiş,Post etme vb.
    }
    }

    }

    wifi kapalıykan uygulama stop oluyor ?

    • avatar Hüseyin Bodur diyor ki:

      AndroidManifest’te gerekli izinleri verdiniz mi?

      Bu dosyayı açıp, <application ile başlayan tagın yukarısına yada </application> tagının altına aşağıdaki izinleri ekleyin.

      <uses-permission android:name=”android.permission.INTERNET” />
      <uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE” />

Yorum Yaz