Android Ping Check (Kotlin)

Merhaba sevgili android geliştiricileri. Bu yazımda sizlere android ping değerini almayı göstereceğim.

Ping Nedir?

“Ping programı, 1983 yılında Mike Muuss tarafından yazılmış bir programdır. Bir makineye genelde 32 baytlık bir ICMP pakedi gönderir ve aynı paketin geri gelmesini bekler. Bu basit program, birçok işe yarayabilir. Sunucu size ne kadar uzak ise, bu süre de o kadar artmaktadır. Ping süresi, bilgisayarınız ile karşıdaki sunucu arasında bir data paketinin iletilmesi sırasında geçen saniye veya saliselere deniyor”

Ne İşime Yarar?

Android Ping Test
Android Ping Test

Öncelikle internet bağlantısı gerektiren herhangi bir proje geliştiriyorsanız işinize yarayacaktır. Örneğin multiplayer bir oyun oynarken ping belirli bir sürenin üzerine çıkarsa kullanıcı diğer oyunculardan geri kalacaktır. Bu durumu farkedip oyunu kapatabilir yada kullanıcıyı uyarabilirsiniz.

Hadi Başlayalım

  • Bu Ping testleri için github’da bulunan hazır kütüphaneyi kullanacağız.
  • Öncelikle bir android projesi oluşturalım.
  • /build.gradle içerisinde ‘allprojects’ kısmını şu şekilde değiştirelim.
    allprojects {
        repositories {
            google()
            jcenter()
            maven {
                url "https://jitpack.io"
            }
        }
    }
  • <app>/build.gradle içerisini şu şekilde değiştirelim ve ‘sync now’ tuşu ile senkronize edelim.
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
        implementation 'androidx.appcompat:appcompat:1.1.0'
        implementation 'androidx.core:core-ktx:1.1.0'
        implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
        implementation 'com.github.stealthcopter:AndroidNetworkTools:0.4.0'
    }
  • Kullanımı kolaylaştırmak için basit bir tasarım hazırlayalım.
    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    
        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="14dp"
            android:text="Ping Tester"
            app:layout_constraintBottom_toTopOf="@+id/editCount"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent" />
    
        <EditText
            android:id="@+id/editCount"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="190dp"
            android:ems="10"
            android:hint="Enter Count"
            android:inputType="number"
            android:text="5"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
        <Button
            android:id="@+id/buttonStartTest"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:onClick="onStartPingTest"
            android:text="Start"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/editCount" />
    
        <TextView
            android:id="@+id/textResult"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="128dp"
            android:gravity="center"
            android:text="TextView"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent" />
    
    </androidx.constraintlayout.widget.ConstraintLayout>
  • Android Ping Test
    Android Ping Test

    Kütüphane kullanımı.

    Ping.onAddress("172.217.17.110").setDelayMillis(1000).setTimes(5).doPing(object: Ping.PingListener{
        override fun onResult(result: PingResult?) {
            //DelayMilis süresi başına çalışan 
        }
    
        override fun onError(p0: Exception?) {
            //Hata alınca çalışır
        }
    
        override fun onFinished(p0: PingStats?) {
            //Toplam süre bittiğinde çalışır, en düşük ve en yüksek ping değerleri olmak üzere birçok istatistik döndürür.
        }
    })
  • onAddress = Ping değerinin gönderileceği adres. Biz Google adresini seçtik.
  • setDelayMilis = Kaç saniyede tekrarlayacağı
  • setTimes = Kaç defa tekrarlayacağı
  • Şimdi test edebiliriz.
Android Ping Test
Android Ping Test
Android Ping Test
Android Ping Test

 

 

 

 

 

 

 

 

Bu yazıda android Ping Check kullanımı konusuna yer verdik. Proje kodlarına buradan ulaşabilirsiniz. Soru, görüş ve önerileriniz için lütfen yorum yapmayı unutmayın.

Photo of author

Mehmet Kurtgöz

Android Developer.

Yorum yapın