Merhaba sevgili android geliştiricileri. Bu yazımda sizlere android ping değerini almayı göstereceğim.
Konu Başlıkları
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?
Ö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>
-
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.
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.