2013-03-28 60 views
2

我试图让使用该代码的无线扫描仪的当前状态:如何开启WiFi扫描仪?

ConnectivityManager manager = (ConnectivityManager)getSystemService(MainActivity.CONNECTIVITY_SERVICE); 

State wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState(); 

不幸的是,第二行是造成我的应用程序,当我运行它崩溃。 评论该行允许应用程序执行没有任何问题。 这部分是非常重要的这个app.I不能继续其余的代码没有它。 它在模拟器上崩溃(Android版本:4.2.2 API级别17),也在运行ICS 4.0.4(API级别15)的Xperia上崩溃。 所需的最低API级别设置为8. 该代码没有错误。

编辑:什么工作原理是: 替代代码:

最终WifiManager wifiManagerI =(WifiManager)this.getSystemService(Context.WIFI_SERVICE);

boolean wifiEnabledI = wifiManagerI.isWifiEnabled();

+0

最新错误? logcat请 – smk

+0

没有错误。该应用在启动时崩溃。但替代代码正常工作。 – user2214436

回答

7

没有日志,我疯狂的猜测是你忘了添加一个权限。

<user-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 

编辑:它结束了这段代码解决了问题。

final WifiManager wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); 
boolean wifiEnabled = wifiManager.isWifiEnabled(); 
+0

谢谢。你说得对。我忘了添加用户权限。但是,该行仍然导致应用程序崩溃。这个替代代码(使用WiFi管理器)解决了这个问题:最终WifiManager wifiManagerI =(WifiManager)this.getSystemService(Context.WIFI_SERVICE); \t boolean wifiEnabledI = wifiManagerI.isWifiEnabled(); – user2214436

+0

好的,我会将它添加到答案中供将来参考。谢谢 – pt2121

+0

+1那里有好的insticts @EntryLevelDev – slezica