为什么我的Pixel 2上的Wifi Mac地址发生变化(Android Pie)?

问题描述 投票:0回答:1

我正在开发一个Wifi Direct应用程序。几周以来,我在我的应用程序中硬编码了我的测试设备(Pixel 2,Android Pie)的Wifi MAC地址,以便于连接。

昨晚,我开始在一段稳定的代码中得到连接错误,这段代码已经有一段时间未被触及了。我注意到我的Pixel 2上的'About Phone'中的MAC地址已经改变 - 它曾经是“42:XX:XX:XX:XX:XX”,现在是“40:XX:XX:XX:XX” :XX”。

更令人担忧的是,Pixel 2正在通过Wifi Direct宣传其旧MAC(以“42”开头)。在附近的设备发现Pixel 2之后,尝试连接到旧地址(“42”)或新地址(“40”)会立即失败,WifiP2pManager.ActionListener会因故障原因传递给WifiP2pManager.connect == WifiP2pManager.ERROR。

所以我的一般问题是......

1.为什么我的像素2上的WiFi MAC地址似乎随机变化?请注意,这是设置中显示的Wifi MAC,而不是来自WifiInfo.getMacAddress()的虚拟值

2.为Wifi Direct同行做广告时,为什么我的手机广播的MAC地址与设置中显示的MAC地址不同?这是一个应该报告的操作系统级错误吗?如何将手机恢复到一致状态(希望没有重新映像)?

3.如何在Wifi Direct发现期间唯一识别像Pixel 2这样的广告Wifi Direct手机?用户可以更改WifiP2pDevice.deviceName。 WifiP2pDevice.deviceAddress显然不是静态的,可以由系统更改。我是否被迫尝试连接并执行某种握手来识别设备,或者是否可以通过Wifi Direct广告单独识别设备(并且静态地在未来)?

感谢您的任何见解。

android mac-address wifi-direct
1个回答
0
投票

我最终不得不在手机的Wifi Direct设置中手动忘记以前的配对。这似乎重置了事情。然而,Wifi Direct开发人员的后续噩梦仍然存在:

  1. 你配对两个设备。设备会记住彼此的MAC地址,以便将来自动连接。
  2. 系统会更改其中一台设备上的MAC地址,而不会发出警告/广播/开发人员通知
  3. 您的设备无法在不忘记旧连接组的情况下进行配对。此外,在清除旧连接组之前,通告的MAC地址将不正确。

我认为你可以通过编程方式忘记旧组,但你可能不得不使用reflection...

© www.soinside.com 2019 - 2024. All rights reserved.