Como obter o endereço MAC da interface de rede WiFi ?

? Gubatron @ | Original: StackOverFlow
---

Parece que a implementação java.net.NetworkInterface do Android não tem um byte [] getHardwareAddress método ()  http://developer.android.com/reference/java/net/NetworkInterface.html

Eu encontrei vários fóruns de pessoas que tentam fazer isso com nenhuma resposta definitiva, eu preciso para obter um UUID um pouco cross- dispositivo, por isso não posso contar com números de telefone ou em ANDROID_ID (que pode ser substituído e que eu acho que depende em que o usuário tenha uma conta google)  http://developer.android.com/reference/android/provider/Settings.Secure.html#ANDROID_ID

No Linux, você pode usar ifconfig ou ler / proc / net / arp e você pode facilmente obter o endereço de hardware.

Existe um arquivo no android que eu possa ler ?

Tem que haver uma maneira de obter este endereço, já que é mostrado em "Configurações > Sobre o telefone > Status " do telefone.

---

Top 5 Responder

1CommonsWare @

Tem que haver uma maneira de obter esta   endereço já que é mostrado na   "Configurações > Sobre o telefone > Status " de   o telefone.

O que significa que, se nada mais, você pode ir putter em torno do código open source Android, talvez usando o Google Code Search, para descobrir onde ele puxa que a partir .

Fazendo um pouco de mim mesmo arrumando, parece que ele está usando getMacAddress() de WifiInfo .

2Tobiaswk @

Resposta tardia, mas pode ajudar os outros com o mesmo "problema" .

O http://wkjeldsen.dk/2010/index.php?a=17 é realmente para a frente :

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

O código acima irá obter o endereço MAC do seu dispositivo, lembre-se de ter wi-fi ativado quando pegar o endereço. Este trecho de código deve ser utilizado em sua atividade .