我正在尝试用这个获取Eclipse android模拟器的Wifi网络的MAC地址:
WifiManager wifiManager = (WifiManager) LoginActivity.this.getSystemService(WIFI_SERVICE);
WifiInfo wInfo = wifiManager.getConnectionInfo();
String macAddress = wInfo.getMacAddress();
System.out.println("HI");
System.out.println(macAddress);
这是android清单权限
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
当执行到达时
System.out.println(macAddress);
应用程序崩溃了java nullpointerexception并关闭它。
出错了什么?我必须在模拟器中添加wifi锥度?
答案 0 :(得分:2)
关于WifiManager.getConnectionInfo()
的文件声明:
返回有关当前Wi-Fi连接的动态信息(如果有) 很活跃。
这意味着,在这种情况下,您需要检查WifiInfo
是否不是null
,以及您的设备是否已有效连接到Wi-Fi网络。对于模拟器,MAC地址始终为null
,因此您应确保输出的内容有效。