KotlinSviluppo

Recuperare il MAC Address in Kotlin senza usare connectionInfo

Per recuperare il MAC Address in Kotlin senza usare connectionInfo, dobbiamo utilizzare il seguente codice:

import java.net.NetworkInterface

fun getMacAddress(): String? {
    try {
        val networkInterfaces = NetworkInterface.getNetworkInterfaces()
        while (networkInterfaces.hasMoreElements()) {
            val ni = networkInterfaces.nextElement()
            if (!ni.isLoopback) {
                val mac = ni.hardwareAddress
                if (mac != null) {
                    val builder = StringBuilder()
                    for (i in mac.indices) {
                        builder.append(String.format("%02X%s", mac[i], if (i < mac.size - 1) "-" else ""))
                    }
                    return builder.toString()
                }
            }
        }
    } catch (e: Exception) {
        e.printStackTrace()
    }
    return null
}

Questo codice utilizza la classe NetworkInterface per ottenere l’elenco delle interfacce di rete disponibili sul dispositivo. Quindi, per ogni interfaccia di rete, viene controllato se non si tratta di un loopback e se esiste un indirizzo MAC. Se esiste, viene formattato in una stringa e restituito come risultato.

Ovviamente occorre inserire il permesso per accedere allo stato del Wifi nel file manifest (AndroidManifest.xml):

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
/ 5
Grazie per aver votato!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *