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