ser - direccion mac android
Obtener la dirección MAC del dispositivo Android sin wifi (5)
¿Cómo obtengo la dirección MAC de la interfaz de red de un dispositivo Android que no tiene una interfaz Wifi (por ejemplo, el emulador de Android)? WifiInfo obtenido a través del WifiManager devuelve null .
EDITAR
Para ser más claros: tengo que comunicarme con un protocolo de red existente (no diseñado por mí) en la red local a la que debo enviar la dirección mac de la interfaz de comunicación dentro de la carga útil durante una fase de registro.
¿Cuál es la interfaz de red en la que desea la dirección MAC? Si no hay wifi, ciertamente no puede obtener la dirección MAC del dispositivo wifi. Representa el hardware físico y si eso no está presente, simplemente no existe.
Lea / sys / class / net / [algo] / dirección como un archivo de texto
Pero es poco probable que sea útil en la forma en que piensas.
Para obtener wifi MAC del dispositivo Android usando adb: adb shell getprop ril.wifi_macaddr
Usa el siguiente código en Java para obtenerlo programáticamente:
Process p = Runtime.getRuntime.exec("adb", "shell", "getprop", "ril.wifi_macaddr")
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream());
String macAddress = br.readLine();
Voy a dar un salto y asumir que desea esta dirección MAC para establecer un identificador único para el dispositivo. Las direcciones Mac no son la manera de hacer esto.
Hay una publicación en el Blog del desarrollador de Android titulada " Identificación de instalaciones de aplicaciones " que trata el tema de cómo generar identificaciones únicas bastante bien, incluidos los métodos populares y las ventajas y desventajas. Definitivamente vale la pena leerlo. Muy relevante para esta publicación es la siguiente cita:
Es posible recuperar una dirección de Mac desde el hardware de WiFi o Bluetooth de un dispositivo. No recomendamos utilizar esto como un identificador único. Para empezar, no todos los dispositivos tienen WiFi. Además, si el WiFi no está encendido, es posible que el hardware no informe la dirección de Mac.
Las opciones disponibles para usted incluyen en su lugar TelephonyManager.getDeviceId (), android.os.Build.SERIAL y Settings.Secure.ANDROID_ID, todas las cuales se tratan con más detalle en la publicación vinculada.
Consulte esta publicación donde he enviado el ejemplo de Utils.java para proporcionar implementaciones de Java puro.
Utils.getMACAddress("wlan0");
Utils.getMACAddress("eth0");
Utils.getIPAddress(true); // IPv4
Utils.getIPAddress(false); // IPv6