2014-01-15 60 views
0

我试图让Eclipse的Android模拟器的Wifi网络的MAC ADDRES本:获取MAC地址的Android APP崩溃

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

你不能用wify连接模拟器[link](http://stackoverflow.com/questions/7876302/enabling-wifi-on-android-emulator) –

回答

2

的文档有关WifiManager.getConnectionInfo()指出它:

返回有关当前Wi-Fi连接的动态信息,如果有的话 处于活动状态。

这意味着,在这种情况下,你要检查你是否WifiInfonull和您的设备有效地连接到Wi-Fi网络。在仿真器的情况下,MAC地址始终为null,所以您应该确保输出的内容是有效的。