Android获取设备的 mac 地址
直接上代码,方法很简单,一般默认是优先获取有线网络eth0,如果没有有线网络的mac地址再获取无线网络的;实际开发中,设备的mac地址的可以用于设备授权的认证,数据的推送识别等等
public static String getEth0Mac() {
String Mac = "";
try {
List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface nif : all) {
if (!nif.getName().equalsIgnoreCase("eth0")) continue;
byte[] macBytes = nif.getHardwareAddress();
if (macBytes == null) {
return "Didn\'t get eth0 MAC address";
}
StringBuilder res1 = new StringBuilder();
for (byte b : macBytes) {
res1.append(String.format("%02X:", b));
}
if (res1.length() > 0) {
res1.deleteCharAt(res1.length() - 1);
Mac = res1.toString();
}
return Mac;
}
} catch (Exception ex) {
}
return "Didn\'t get eth0 MAC address";
}
public static String getWlan0Mac() {
String Mac = "";
try {
List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface nif : all) {
if (!nif.getName().equalsIgnoreCase("wlan0")) continue;
byte[] macBytes = nif.getHardwareAddress();
if (macBytes == null) {
return "Didn\'t get Wlan0 MAC address";
}
StringBuilder res1 = new StringBuilder();
for (byte b : macBytes) {
res1.append(String.format("%02X:", b));
}
if (res1.length() > 0) {
res1.deleteCharAt(res1.length() - 1);
Mac = res1.toString();
}
return Mac;
}
} catch (Exception ex) {
}
return "Didn\'t get Wlan0 address";
}
public static String getDeviceMacAddress() {
String mac = !getEth0Mac().equals("Didn\'t get eth0 MAC address") ? getEth0Mac() : getWlan0Mac();
return mac;
}