41 votes

Comment obtenir l'adresse MAC de l'interface réseau WiFi?

Il semble que le java.net.NetworkInterface mise en œuvre d'android n'ont pas de
byte[] getHardwareAddress() la méthode http://developer.android.com/reference/java/net/NetworkInterface.html

J'ai trouvé plusieurs forums de gens qui essaient de faire cela avec pas de réponse définitive, j'ai besoin d'obtenir un peu de cross-device UUID, donc je ne peux pas compter sur les numéros de téléphone ou en ANDROID_ID (qui peuvent être remplacés et qui, je pense, dépend de l'utilisateur ayant un compte google) http://developer.android.com/reference/android/provider/Settings.Secure.html#ANDROID_ID

Sous linux, vous pouvez utiliser la commande ifconfig ou lire à partir de /proc/net/arp et vous pouvez facilement obtenir l'adresse Matérielle.

Est-il un fichier dans android que je peux lire?

Il y a un moyen pour obtenir cette adresse, car il est indiqué dans la rubrique "Paramètres > à Propos du Téléphone > État" du téléphone.

95voto

Tobiaswk Points 640

Réponse tardive, mais cela peut aider les autres avec le même "problème".

La réponse est vraiment simple:

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

Le code ci-dessus vous donnera l'adresse MAC de votre appareil, n'oubliez pas d'activer le wifi lorsque vous saisissez l'adresse. Cet extrait de code doit être utilisé dans votre activité.

23voto

CommonsWare Points 402670

Il doit y avoir un moyen d'obtenir cette adresse car elle apparaît dans les "Paramètres> À propos du téléphone> État" du téléphone.

Ce qui signifie, à tout le moins, que vous pouvez faire le tour du code open source Android, peut-être en utilisant Google Code Search, pour savoir d'où il tire cela.

Faire un peu de putter moi-même, il semblerait qu'il utilise getMacAddress() de WifiInfo .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X