安卓设备的蓝牙或WiFi MAC地址

3

我正在编写一款关于安卓设备和电脑之间通信的程序。

在蓝牙或WiFi关闭的情况下,有没有办法获取安卓设备的蓝牙或WiFi的MAC地址

如果有,该如何操作?


我尝试过WifiManager,但是当它关闭时无法获取mac地址。 - xhlwill
1
不行。原因和你无法得到一辆不存在的车的车牌一样。 - Michael Petrotta
然而,手机出厂时MAC地址就已经烧录在硬件中了,不是吗?@MichaelPetrotta - xhlwill
抱歉,我以为你在问如何发现远程设备的MAC地址。 - Michael Petrotta
我想让它更清晰,我想在Android设备上编写一个程序来获取蓝牙或WiFi的MAC地址(关闭状态),有什么想法吗?@MichaelPetrotta - xhlwill
如何在Android中获取WiFi接口的MAC地址? - Andrey Starodubtsev
2个回答

1

是的,即使关闭了蓝牙/ WiFi,你仍然可以获取MAC地址。

获取蓝牙信息就像这样简单:

BluetoothAdapter.getDefaultAdapter().getAddress(); // MAC address 
BluetoothAdapter.getDefaultAdapter().isEnabled(); // true if ON 

不需要使用Context,太棒了!

为了完整回答.. WiFi状态:

final WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
wifiManager.getConnectionInfo().getMacAddress(); // MAC address
wifiManager.getWifiState() == WifiManager.WIFI_STATE_ENABLED; // true if ON

这里需要注意的是,在Android M之后,此函数返回02:00:00:00:00:00 - zygimantus
是的。由于安全问题,他们进行了更改。 - zygimantus

1

这对我来说在开启和关闭wifi时都有效,我还没有尝试过蓝牙。

WifiManager wimanager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
String address = wimanager.getConnectionInfo().getMacAddress();
Log.d("TOKEN", address);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接