获取设备有线mac地址(唯一标识)
最近公司有个需求,要求设备端每个设备生成一个唯一标识记录都后台入库备案,后续可以通过这个唯一标识查到这台设备的数据信息,但是厂商提供的唯一标识码在每次启动时是会变更的。所以需要获取设备的mac地址来作为该设备的唯一标识。
废话不多说,上代码
private static String MAC_ETHERNET = "";
// for ethernet mac
public static String ethernetMac() {
if (TextUtils.isEmpty(MAC_ETHERNET)) {
try {
MAC_ETHERNET =
loadReadFile("/sys/class/net/eth0/address").toUpperCase().substring(0, 12);
} catch (Exception e) {
e.printStackTrace();
}
}
return MAC_ETHERNET;
}
private static String loadReadFile(String path) {
StringBuffer sb = new StringBuffer();
try {
BufferedReader reader = new BufferedReader(new FileReader(path));
char[] buf = new char[8192];
int len = 0;
while ((len = reader.read(buf)) != -1) {
String str = String.valueOf(buf, 0, len);
sb.append(str);
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
return sb.toString().replaceAll(":", "");
}