我编写了以下代码来获取MAC地址:
WifiManager wimanager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
String address = wimanager.getConnectionInfo().getMacAddress();
Log.d("TOKEN", address);
这在我的手机上完美地工作,但在Android模拟器上返回null。这是因为Android模拟器没有MAC地址吗?
我编写了以下代码来获取MAC地址:
WifiManager wimanager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
String address = wimanager.getConnectionInfo().getMacAddress();
Log.d("TOKEN", address);
这在我的手机上完美地工作,但在Android模拟器上返回null。这是因为Android模拟器没有MAC地址吗?
当您尝试在模拟器上获取蓝牙设备时,情况与获取Mac地址相同。模拟器中没有Mac地址,应返回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/。
当我尝试查看设备上的所有网络设备和Mac地址时,我发现这个答案非常有帮助- https://dev59.com/DWMm5IYBdhLWcg3wVdx5#17719579。