Android’de Kotlin ile İnternet Bağlantı Kontrolü

İnternet teknolojisi hayatımızın hemen her anında bizlere kolaylıklar sunmaktadır. Mobil uygulamaların birçoğu internet teknolojini, telefon şarj yönetimi, akıllı ev yazılımlar(IOT), veri alışverişi vb konuları yapabilmek için kullanmaktadır. Mobil uygulama yazılımları için internet bu kadar ihtiyaç ise telefonda internetin olup olmadığını kontrol etmek çok önemli bir konu değil mi?

Bu makalede, Kotlin dili ile oluşturulmuş bir Android uygulama içerisinden telefonda internet kontrolü ve var olan internetin Wifi mi yoksa mobil veriden mi  (cellular) geldiğini tespit etmeyi örnekleyeceğim.

Örneğimin ekran görüntüsü  aşağıdaki gibi olacak.

Bu projenin yapım adımlarına başlayalım.

1-Proje Oluşturma

Ben bu örneği Kotlin dili ile yazdığım için projenizi oluştururken Language alanını Kotlin seçmelisiniz.

2-Gerekli Kütüphanenin Yüklenmesi

Projeyi belirttiğim gibi oluşturduktan sonra, projemin app dizinin altındaki build.gradle dosyasını açıyoruz. Dependencies kod bloklarının arasına aşağıdaki kodları yerleştirerek LocalBroadcastManager kütüphanelerini yüklüyoruz.

3- İzinlerin Eklenmesi

Telefondaki internet durum bilgisini alabilmek için AndroidManifest dosyasına kırmızı ile belirttiğim yere kodu eklemelisiniz. AndroidManifest dosyası;  app -> src -> main dizininin içindedir.

4- Kontrolleri Sağlayacağım Sınıfı Oluşturma

NetworkMonitorUtil adında oluşturduğum sınıfta internetin tüm durumlarını kontrol ettim ve durumu result değişkenine atadım.

Android’in yeni sürümlerinde bazı yöntemler kullanımdan kaldırıldığından, internet bağlantısını kontrol etmek için iki farklı yol kullanacağız:

  1. Android 9 (Pie) ve sonraki sürümlere sahip cihazlar için, ağın ne zaman kullanılabilir olup olmadığını ve network ağının ne tür olduğunu (Wifi, Cellular vb.) tespit etme yöntemlerine sahip olan NetworkCallback’i kullandım.
  2. Android 8 (Oreo) ve altındaki cihazlar için, ağ durumu her değiştiğinde kodu çalıştırmak için CONNECTIVITY_ACTION yöntemini LocalBroadcastManager ile birleştirdim.

Daha detaylı açıklamalar için kod yorumlarını okuyabilirsiniz.

5- NetworkMonitorUtil Sınıfının Kullanılması

İlk önce MainActivity sınıfında, NetworkMonitorUtil sınıfını çağırdık. Sonrasında onResume() metodunun içinde register metodunu kullanarak  NetworkMonitorUtil sınıfındaki kontrollerimizin çalışmasını sağladık. Son olarak onCreate metodunda NetworkMonitorUtil sınıfında elde ettiğimiz internet kontrollerinin sonuçlarını arayüz tasarımında gösterilmesini sağladım. İlgili kodların açıklamalarıyla birlikte aşağıdan ulaşabilirsiniz.

Projemin kodlarına github linkinden hızlıca ulaşabilirsiniz.

 

Kaynak: https://johncodeos.com/how-to-check-for-internet-connection-in-android-using-kotlin/

Kategori Genel
Etiketler