How to get Wi-Fi Mac address in Android Marshmallow

后端 未结 2 936
走了就别回头了
走了就别回头了 2020-12-03 21:24

I am using WiFi MAC address as Unique id, from Marshmallow onwards returning fake MAC address(for security reason). With this my Android application behav

2条回答
  •  感动是毒
    2020-12-03 22:16

    There is a work-around to get the Mac address in Android 6.0.

    First you need to add Internet user permission.

    
    

    Then you can find the mac over the NetworkInterfaces API.

    public static String getMacAddr() {
        try {
            List all = Collections.list(NetworkInterface.getNetworkInterfaces());
            for (NetworkInterface nif : all) {
                if (!nif.getName().equalsIgnoreCase("wlan0")) continue;
    
                byte[] macBytes = nif.getHardwareAddress();
                if (macBytes == null) {
                    return "";
                }
    
                StringBuilder res1 = new StringBuilder();
                for (byte b : macBytes) {
                    res1.append(String.format("%02X:",b));
                }
    
                if (res1.length() > 0) {
                    res1.deleteCharAt(res1.length() - 1);
                }
                return res1.toString();
            }
        } catch (Exception ex) {
        }
        return "02:00:00:00:00:00";
    }
    

    Source: http://robinhenniges.com/en/android6-get-mac-address-programmatically

提交回复
热议问题