Wi-Fi Direct 和“普通”Wi-Fi - 不同的 MAC?

2023-11-21

我目前正在尝试通过 Wi-Fi Direct 连接两部知道彼此 MAC 地址的手机,并偶然发现以下问题: 我收到的 MAC 地址

    WifiManager wifiMan = (WifiManager) this
            .getSystemService(Context.WIFI_SERVICE);
    WifiInfo wifiInf = wifiMan.getConnectionInfo();
    MAC_ADDRESS = wifiInf.getMacAddress();

与我从 收到的略有不同WifiP2pManager当发现并请求同伴时。例子:a0:xx:xx:...变成a2:xx:xx....有谁知道为什么?我没有找到任何方法来获取“Wi-Fi Direct MAC 地址”,并且我认为 MAC 地址应该是唯一的,并且它是处理两者的同一个 Wi-Fi 模块(普通 Wi-Fi 和 P2P/Direct) 。这很奇怪.. 我应该怎么办?对于我拥有的两台设备(Galaxy Nexus),总是只有前两个字符的 MAC 地址不同 - 我应该简单地丢弃它们吗?遇到问题(两个设备仅 MAC 地址第一部分不同)的概率是否太高?

Thanks.


阅读有关MAC地址在维基百科上。

地址可以是通用管理地址或本地管理地址。

通过设置地址最高有效字节的第二最低有效位来区分全局管理地址和本地管理地址。该位也称为 U/L 位,是通用/本地的缩写,用于标识地址的管理方式。如果该位为 0,则该地址是通用管理的。如果为 1,则该地址是本地管理的。

MAC 48 Address

由于 Wi-Fi Direct 只是 MAC 之上的另一个堆栈,因此您还应该检查该位对其意味着什么。我找到了一些邮件讨论对此有一些启发。显然下面的引用来自 WFA 规范。

P2P设备应分配一个P2P接口地址,对应于 IEEE Std 802.11-2007 §7.1.3.3.1 中描述的格式1, 哪个 用于与 P2P 组所有者或 P2P 内的客户端进行通信 团体。P2P 接口地址不需要全局唯一,并且 可以局部给药。 P2P 接口地址可以与 P2P 设备地址提供了 P2P 接口的要求 满足本条款中的地址。

所以我相信这个问题的答案是,你不应该从WifiManager并与它一起使用Wi-Fi P2P连接。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Wi-Fi Direct 和“普通”Wi-Fi - 不同的 MAC? 的相关文章

随机推荐