2013-03-28 66 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