Get android Ethernet MAC Address (not wifi interface)
This is my solution based on the Joel F answer. Hope it helps someone!
/* * Load file content to String */public static String loadFileAsString(String filePath) throws java.io.IOException{ StringBuffer fileData = new StringBuffer(1000); BufferedReader reader = new BufferedReader(new FileReader(filePath)); char[] buf = new char[1024]; int numRead=0; while((numRead=reader.read(buf)) != -1){ String readData = String.valueOf(buf, 0, numRead); fileData.append(readData); } reader.close(); return fileData.toString();}/* * Get the STB MacAddress */public String getMacAddress(){ try { return loadFileAsString("/sys/class/net/eth0/address") .toUpperCase().substring(0, 17); } catch (IOException e) { e.printStackTrace(); return null; }}
Assuming your ethernet interface is eth0, try opening and reading the file /sys/class/net/eth0/address
.
this way to use java fix it; maybe can help you
NetworkInterface netf = NetworkInterface.getByName("eth0");byte[] array = netf.getHardwareAddress();StringBuilder stringBuilder = new StringBuilder("");String str = "";for (int i = 0; i < array.length; i++) { int v = array[i] & 0xFF; String hv = Integer.toHexString(v).toUpperCase(); if (hv.length() < 2) { stringBuilder.append(0); } stringBuilder.append(hv).append("-"); }str = stringBuilder.substring(0, stringBuilder.length()- 1);