it-swarm.com.de

Erhalten Sie die MAC-Adresse des Android-Geräts ohne WLAN

Wie erhalte ich die MAC-Adresse der Netzwerkschnittstelle eines Android-Geräts ohne Wifi-Schnittstelle (z. B. Android-Emulator)? WifiInfo, das Sie über den WifiManager erhalten, gibt null zurück.

EDIT

Um es klarer zu sagen: Ich muss mit einem vorhandenen Netzwerkprotokoll (nicht von mir entworfen) im lokalen Netzwerk kommunizieren, wo ich die MAC-Adresse der kommunizierenden Schnittstelle innerhalb der Nutzdaten während einer Registrierungsphase senden muss.

21
Tom

Lesen Sie/sys/class/net/[etwas]/address als Textdatei

Es ist jedoch unwahrscheinlich, dass es so nützlich ist, wie Sie denken.

17
Chris Stratton

Ich mache einen Sprung und gehe davon aus, dass Sie diese MAC-Adresse benötigen, um eine eindeutige Kennung für das Gerät festzulegen. Mac-Adressen sind dafür nicht der Weg.

Es gibt einen Android Developer Blog-Beitrag mit dem Titel " Identifying App Installations ", in dem das Thema der eindeutigen Generierung eindeutiger IDs behandelt wird, einschließlich der gängigen Methoden und der Vor- und Nachteile. Es ist auf jeden Fall eine Lektüre wert. Ganz wichtig für diesen Beitrag ist das folgende Zitat:

Es ist möglicherweise möglich, eine Mac-Adresse von der WLAN- oder Bluetooth-Hardware eines Geräts abzurufen. Wir empfehlen nicht, dies als eindeutige Kennung zu verwenden. Zu Beginn verfügen nicht alle Geräte über WLAN. Wenn das WLAN nicht aktiviert ist, meldet die Hardware möglicherweise nicht die Mac-Adresse. 

Zu den verfügbaren Optionen gehören stattdessen TelephonyManager.getDeviceId (), Android.os.Build.SERIAL und Settings.Secure.Android_ID, die alle in dem verknüpften Beitrag ausführlicher behandelt werden.

23
Alexander Lucas

Siehe diesen Beitrag wo ich das Beispiel Utils.Java eingereicht habe, um reine Java-Implementierungen bereitzustellen.

Utils.getMACAddress("wlan0");
Utils.getMACAddress("eth0");
Utils.getIPAddress(true); // IPv4
Utils.getIPAddress(false); // IPv6 
4
Whome

Welche Netzwerkschnittstelle möchten Sie als MAC-Adresse verwenden? Wenn kein WLAN vorhanden ist, können Sie die MAC-Adresse des WLAN-Geräts sicherlich nicht erhalten. Es stellt die physische Hardware dar und wenn diese nicht vorhanden ist, existiert sie einfach nicht.

2
Jess

Wifi MAC eines Android-Geräts mit adb erhalten: Adb Shell getprop ril.wifi_macaddr

Verwenden Sie den folgenden Code in Java, um ihn programmgesteuert abzurufen:

Process p = Runtime.getRuntime.exec("adb", "Shell", "getprop", "ril.wifi_macaddr")
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream());
String macAddress = br.readLine();
0
Thejus Krishna