android 10 上的 MAC 地址错误

问题描述

要求

需要从 android 设备获取正确的 MacAddress。

我使用下面的代码获取 MacAddress 。

代码

private static String getMacAddress() {
    try {
        Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
        while (interfaces.hasMoreElements()) {
            NetworkInterface networkInterface = interfaces.nextElement();

            if (TextUtils.equals(networkInterface.getName(),"wlon0")) {
                byte[] bytes = networkInterface.getHardwareAddress();
                StringBuilder builder = new StringBuilder();
                for (byte b : bytes) {
                    builder.append(String.format("%02X:",b));
                }

                if (builder.length() > 0) {
                    builder.deleteCharat(builder.length() - 1);
                }

                return builder.toString();
            }
        }

        return "";
    } catch (SocketException e) {
        Log.e(Constants.TAG,"Get Mac Address Error",e);
        return "";
    }
}
  

问题

我尝试了上面的代码获取 macAddress ,但是我在 android 10 上得到了错误的地址,但是在 10 以下的其他版本上,我能够得到正确的地址。我也试过用 p2p0 替换 wlon0,但没用。

仅供参考

我没有连接到互联网,但我的 wifi 已打开,因为我使用 WifiDirect 进行 P2P 通信。

任何帮助将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)