我编写了以下代码来获取 MAC 地址:
WifiManager wimanager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
String address = wimanager.getConnectionInfo().getMacAddress();
Log.d("TOKEN", address);
这在我的手机上完美运行,但在 Android 模拟器中它返回 null。这是因为安卓模拟器没有MAC地址吗?
我编写了以下代码来获取 MAC 地址:
WifiManager wimanager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
String address = wimanager.getConnectionInfo().getMacAddress();
Log.d("TOKEN", address);
这在我的手机上完美运行,但在 Android 模拟器中它返回 null。这是因为安卓模拟器没有MAC地址吗?
这与您尝试在模拟器上获取蓝牙内容时相同。没有 MacAdress 并且应该返回 null。尝试在真实设备上,它会工作。代码是正确的。
请参阅我已提交 Utils.java 示例以提供纯 Java 实现并在没有 WifiManager 的情况下工作的这篇文章。代码也适用于模拟器。
Utils.getMACAddress("wlan0");
Utils.getMACAddress("eth0");
Utils.getIPAddress(true); // IPv4
Utils.getIPAddress(false); // IPv6
默认情况下,Android 模拟器运行模拟以太网连接,而不是 wifi 连接。由于未启用 Wifi,因此您的代码不会显示 wifi mac 地址。请参阅http://kmansoft.com/2010/07/27/debugging-wifi-in-the-emulator/
在尝试查看我的设备上的所有网络设备和 MacAddress 时,我发现这个答案非常有用 - https://stackoverflow.com/a/17719579/90236查看