Come ottenere l'indirizzo MAC dell'interfaccia di rete WiFi ?

? Gubatron @ | Original: StackOverFlow

Sembra l'attuazione java.net.NetworkInterface di Android non ha un [ ] getHardwareAddress metodo byte ( )  http://developer.android.com/reference/java/net/NetworkInterface.html

Ho trovato diversi forum di persone che cercano di fare questo con una risposta definitiva, ho bisogno di avere un po ' UUID cross-device, quindi non posso contare su numeri di telefono o in ANDROID_ID ( che può essere sovrascritto e che credo dipende l'utente con un account Google )  http://developer.android.com/reference/android/provider/Settings.Secure.html#ANDROID_ID

In Linux è possibile utilizzare ifconfig o leggere da / proc / net / arp e si può facilmente ottenere l'indirizzo hardware .

C'è un file in Android che posso leggere ?

Ci deve essere un modo per ottenere questo indirizzo dal momento che è mostrato in "Impostazioni > Info sul telefono > Stato " del telefono .

Top 5 Risposta

1CommonsWare @

Ci deve essere un modo per ottenere questo   indirizzo poiché è mostrato in   " Impostazioni > Info sul telefono > Stato " di   il telefono.

Il che significa, se non altro, si può andare putter intorno al codice open source Android, magari utilizzando Google Code Search, per capire dove tira che dal .

Facendo un po 'di me stesso puttering, sembrerebbe che usa getMacAddress() da WifiInfo .

2Tobiaswk @

Tardo risposta, ma può aiutare gli altri con lo stesso " problema " .

Il http://wkjeldsen.dk/2010/index.php?a=17 è davvero semplice :

WifiManager wifiMan = (WifiManager) this.getSystemService(
                Context.WIFI_SERVICE);
WifiInfo wifiInf = wifiMan.getConnectionInfo();
String macAddr = wifiInf.getMacAddress();

Il codice qui sopra ottenere l'indirizzo MAC del dispositivo, ricordarsi di avere wifi abilitato quando afferra l'indirizzo. Questo frammento di codice dovrebbe essere utilizzato nella vostra attività .