首页 > 移动平台 > 详细

在安卓6.0(及以上)设备上无法获取无线网卡MAC地址的解决方案

时间:2018-12-01 14:31:01      阅读:156      评论:0      收藏:0      [点我收藏+]

在安卓6.0以下的设备上,通过WifiManager.getConnectionInfo().getMacAddress()即可获取WLAN物理地址,

而在6.0及以上,以此方式获取到的MAC地址为固定值02:00:00:00:00:00,而非真实值

解决方案

WlanMacAddressGetter.java

package com.example.buyishi.myapplication;

import android.util.Log;

import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;

public class WlanMacAddressGetter {
    private static final String TAG = WlanMacAddressGetter.class.getName();

    public static String getWlanMacAddress() {
        try {
            Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
            while (networkInterfaces.hasMoreElements()) {
                NetworkInterface networkInterface = networkInterfaces.nextElement();
                if (networkInterface.getName().equals("wlan0")) {
                    StringBuilder mac = new StringBuilder();
                    byte[] hardwareAddress = networkInterface.getHardwareAddress();
                    String hex = Integer.toHexString(hardwareAddress[0] & 0xff);
                    if (hex.length() == 1) {
                        mac.append(‘0‘);
                    }
                    mac.append(hex);
                    for (int i = 1; i < hardwareAddress.length; ++i) {
                        mac.append(‘:‘);
                        hex = Integer.toHexString(hardwareAddress[i] & 0xff);
                        if (hex.length() == 1) {
                            mac.append(‘0‘);
                        }
                        mac.append(hex);
                    }
                    return mac.toString();
                }
            }
        } catch (SocketException ex) {
            Log.e(TAG, null, ex);
        }
        return null;
    }
}

注意:须声明权限android.permission.INTERNET,否则在获取MAC时会引发SocketException

 

在安卓6.0(及以上)设备上无法获取无线网卡MAC地址的解决方案

原文:https://www.cnblogs.com/buyishi/p/10049196.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!