获取Android Wi-Fi热点/tethering/AP的MAC地址

获取Android Wi-Fi热点/tethering/AP的MAC地址,android,wifi,mac-address,Android,Wifi,Mac Address,我可以通过以下方式获得Android中Wi-Fi接口的MAC地址: final WifiInfo wi = wm.getConnectionInfo(); String mac = wi.getMacAddress(); 然而,我意识到,当Wi-Fi充当无线接入点(路由器)(也称为热点或栓系或AP)时,MAC地址不再相同。我可以从《adb shell ip地址秀》中了解到这一点 当Wi-Fi连接到网络时,adb shell ip addr show显示: 10: wlan0: <BROA

我可以通过以下方式获得Android中Wi-Fi接口的MAC地址:

final WifiInfo wi = wm.getConnectionInfo();
String mac = wi.getMacAddress();
然而,我意识到,当Wi-Fi充当无线接入点(路由器)(也称为热点或栓系或AP)时,MAC地址不再相同。我可以从《adb shell ip地址秀》中了解到这一点

当Wi-Fi连接到网络时,
adb shell ip addr show
显示:

10: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether a0:0b:ba:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.25/24 brd 192.168.1.255 scope global wlan0
    inet6 fe80::a20b:baff:fee0:73c7/64 scope link 
       valid_lft forever preferred_lft forever
10:wlan0:mtu 1500 qdisc pfifo\U快速状态升级qlen 1000
链路/以太网a0:0b:ba:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 192.168.1.25/24 brd 192.168.1.255作用域全局wlan0
inet6 fe80::a20b:baff:fee0:73c7/64范围链接
永远有效\u lft首选\u lft永远有效
但是当它作为接入点时

10: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 02:1a:11:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.43.1/24 brd 192.168.43.255 scope global wlan0
10:wlan0:mtu 1500 qdisc pfifo\U快速状态升级qlen 1000
链接/以太02:1a:11:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 192.168.43.1/24 brd 192.168.43.255作用域全局wlan0
所以MAC地址不同


我想知道如何从Java代码中获取Wi-Fi接入点的MAC地址(
02:1a:11:xx:xx:xx
)?

这是Android中的一个bug或功能。每次启动AP/Wlan连接时,都会生成一个随机mac地址,直到停止服务

这是2011年在这里报道的,所以我认为这不会很快改变


2018年更新:他们似乎正式宣布这是一项安全功能:

有没有办法访问当前自动生成的mac地址??