it-swarm.com.de

Wie erhalte ich die MAC-Adresse der WiFi-Netzwerkschnittstelle?

Es scheint, dass die Java.net.NetworkInterface-Implementierung von Android keine
byte [] getHardwareAddress () - Methode http://developer.Android.com/reference/Java/net/NetworkInterface.html

Ich habe mehrere Foren gefunden, in denen versucht wurde, dies ohne definitive Antwort zu tun. Ich brauche eine geräteübergreifende UUID. Daher kann ich mich nicht auf Telefonnummern oder Android_ID verlassen (die überschrieben werden können und von denen ich denke, dass sie abhängig sind für den Benutzer mit einem Google-Konto) http://developer.Android.com/reference/Android/provider/Settings.Secure.html#Android_ID

In Linux können Sie ifconfig verwenden oder aus/proc/net/arp lesen und die Hardware-Adresse erhalten.

Gibt es in Android eine Datei, die ich lesen kann?

Es muss eine Möglichkeit geben, diese Adresse zu erhalten, da sie unter "Einstellungen> Telefoninfo> Status" des Telefons angezeigt wird.

39
Gubatron

Es muss einen Weg geben, dies zu bekommen Adresse, da sie in der .__ angezeigt wird. "Einstellungen> Über Telefon> Status" von das Telefon.

Das heißt, wenn nicht anders, können Sie den Open-Source-Code von Android mit Hilfe der Google Codesuche ausprobieren, um herauszufinden, woher das kommt.

Ich mache ein bisschen Puttering, als würde sie getMacAddress() von WifiInfo verwenden.

22
CommonsWare

Späte Antwort, aber es kann anderen mit demselben "Problem" helfen.

Die Antwort ist wirklich unkompliziert:

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

Mit dem obigen Code erhalten Sie die MAC-Adresse Ihres Geräts. Denken Sie daran, WLAN zu aktivieren, wenn Sie die Adresse abrufen. Dieses Code-Snippet sollte in Ihrer Aktivität verwendet werden.

93
Tobiaswk

AKTUALISIEREN:

Anfang Android 6.0Über der API erhalten Sie eine konstante MAC-Adresse für alle Geräte 02: 00: 00: 00: 00: 00 Uhr. Einzelheiten finden Sie unten
http://developer.Android.com/about/versions/Marshmallow/Android-6.0-changes.html
Ich habe einen anderen Beitrag gefunden, der behauptet, die MAC-Adresse in 6.0 gefunden zu haben. Er wurde jedoch nicht getestet
So erhalten Sie eine Wi-Fi-Mac-Adresse in Android Marshmallow

5
Kaps

Folgende Erlaubnis hinzufügen.

 <uses-permission Android:name="Android.permission.ACCESS_WIFI_STATE" />

WifiManager wird in onCreate initialisiert.

 WifiManager wifiMgr = (WifiManager) getContext().getSystemService(context.WIFI_SERVICE);

Verwenden Sie folgende Funktion.

 public void WI-FI_MAC() {
    WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
    String macAddress = wifiInfo.getMacAddress();
    }
0
Quantum4U

Auf Android Q gibt es keine Möglichkeit mehr, auf die Mac-Adresse zuzugreifen.

WifiInfo.getMacAddress() gibt immer 02:00:00:00:00:00 zurück.

Und WifiConfiguration.getRandomizedMacAddress() ist nicht mehr verfügbar.

0
fawkes