Android에서 기기의 MAC 주소 가져 오기

public static String getMac() {
    try {
        List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces());
        for (NetworkInterface nif : all) {
            if (!"wlan0".equalsIgnoreCase(nif.getName())) {
                continue;
            }
            byte[] macBytes = nif.getHardwareAddress();
            if (macBytes == null || macBytes.length == 0) {
                continue;
            }
            StringBuilder result = new StringBuilder();
            for (byte b : macBytes) {
                result.append(String.format("%02X", b));
            }
            return result.toString().toUpperCase();
        }
    } catch (Exception x) {
        x.printStackTrace();
    }
    return "";
}

참고 :
1. 휴대폰 시스템 인 경우 위의 방법으로 올바른 MAC 주소, 즉 무선 네트워크 카드의 MAC 주소를 가져올 수 있습니다.
2. TV 시스템 인 경우 위의 방법으로 MAC 주소를 얻을 수없는 경우가 있습니다. 그 이유는 TV 시스템에 유선 네트워크 카드와 무선 네트워크 카드라는 두 개의 네트워크 카드가 있으므로 TV 시스템에 동시에 두 개의 MAC 주소가 있기 때문입니다. 무선 MAC 주소는 무선 네트워크 스위치가 켜져있을 때만 얻을 수 있습니다. 유선 MAC 주소는 어떤 상황에서도 얻을 수 있으므로 TV 시스템은 유선 네트워크 카드의 MAC 주소를 장치의 MAC 주소로 사용하도록 권장합니다. 유선 MAC 주소를 얻으려면 위의 알고리즘에서 "wlan0"매개 변수를 "eth0"으로 변경해야합니다.

 

추천

출처blog.csdn.net/chenzhengfeng/article/details/107706992