在Android系统中,GetPhysicalAddress方法已经过时并不再使用。取而代之的是getHardwareAddress方法。可以用以下代码示例来获取设备MAC地址:
public static String getMACAddress() {
try {
List interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface intf : interfaces) {
if (!intf.getName().equalsIgnoreCase("wlan0")) {
continue;
}
byte[] macBytes = intf.getHardwareAddress();
if (macBytes == null) {
return "";
}
StringBuilder stringBuilder = new StringBuilder();
for (byte b : macBytes) {
stringBuilder.append(String.format("%02X:", b));
}
if (stringBuilder.length() > 0) {
stringBuilder.deleteCharAt(stringBuilder.length() - 1);
}
return stringBuilder.toString();
}
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
此代码先获取了所有的网络接口,然后在其中查找wlan0接口,最终返回该接口的MAC地址。注意,需要在AndroidManifest.xml文件中添加以下权限: