/**
* 获取无线网络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地址才对。
参考链接: