/** * 获取无线网络Mac地址 * * @return */ private static String getWifiMac() { return readFile("/sys/class/net/wlan0/address").toUpperCase(); } /** * 获取有线网络Mac地址 * * @return */ private static String getLocalMac() { return readFile("/sys/class/net/eth0/address").toUpperCase(); } /** * 读取文件内容 * * @param filePath * @return */ private static String readFile(String filePath) { StringBuilder sb = new StringBuilder(); try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) { String line; while ((line = reader.readLine()) != null) { if (sb.length() > 0) { sb.append("\n"); } sb.append(line); } } catch (IOException e) { e.printStackTrace(); } return sb.toString(); }
PS:笔者是在定制安卓设备上面开发,用该方式获取Mac地址没问题。
PS2:手机上因为权限问题很可能获取不了Mac地址,请自行测试。
PS3:不过一般来说,手机上也不用获取有线网络的Mac地址才对。
参考链接: