Controllo della connessione in Android con Kotlin
Praticamente qualsiasi app ad oggi richiede una connessione a internet; è quindi molto probabile che dobbiamo fare un controllo preventivo prima di cercare di mandare / ricevere dati.
Oggi vediamo come fare questo controllo sulle nostre app Android usando Kotlin.
Prima di tutto ricordatevi che dovete impostare i permessi nel manifest:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
Questo il codice Kotlin:
import android.content.Context
import android.net.ConnectivityManager
class NetworkUtils {
companion object {
fun isNetworkAvailable(context: Context): Boolean {
val connectivityManager =
context.getSystemService(Context.CONNECTIVITY_SERVICE)
as ConnectivityManager
val networkInfo = connectivityManager.activeNetworkInfo ?: return false
return networkInfo.isConnected
}
fun wirelessConnection(context: Context): Boolean {
val connectivityManager =
context.getSystemService(Context.CONNECTIVITY_SERVICE)
as ConnectivityManager
val networkInfo = connectivityManager.activeNetworkInfo
return if (networkInfo != null && networkInfo.type ==
ConnectivityManager.TYPE_WIFI) {
networkInfo.isConnected
} else false
}
}
}
Abbiamo creato due metodi "statici".
Il primo controlla se c'è connessione in generale; il secondo è più specifico per la rete wireless.
Così se volete potete dare all'utente la possibilità di scegliere quale connessione usare.
Potete fare il controllo banalmente in questo modo:
if (NetworkUtils.isNetworkAvailable(this)) {
// DO STUFF
} else {
// AVVERTI UTENTE
}
Enjoy!
kotlin android connectivitymanager
Commentami!