Controllo della connessione in Android con Kotlin

Mattepuffo's logo
Controllo della connessione in Android con Kotlin

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!


Condividi

Commentami!