2014-02-13 122 views
0
protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     WifiManager mainWifiObj; 
     mainWifiObj = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
     class WifiScanReceiver extends BroadcastReceiver { 
       public void onReceive(Context c, Intent intent) { 
       } 
      } 
      WifiScanReceiver wifiReciever = new WifiScanReceiver(); 
      registerReceiver(wifiReciever, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); 
     List<ScanResult> wifiScanList = mainWifiObj.getScanResults(); //error in this line 
      String data = wifiScanList.get(0).toString(); 

我試圖掃描wifi並希望特定接入點信號強度。 SO,我從網站複製了這段代碼:http://www.tutorialspoint.com/android/android_wi_fi.htm當試圖獲得Android信號強度時強制關閉強制關閉

當我嘗試運行這段代碼時,我的應用程序崩潰了。除此之外,我沒有做任何事情。 如果我評論最後兩行,我的應用程序不會崩潰,甚至不會給我任何輸出。

任何人都可以請告訴我,我怎麼能阻止這個錯誤。錯誤:App_name強行關閉。

在日誌貓的錯誤是:

FATAL EXCEPTION: main 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.wifisignalstrength/com.example.wifisignalstrength.MainActivity}: java.lang.SecurityException: WifiService: Neither user 10112 nor current process has android.permission.ACCESS_WIFI_STATE. 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1967) 
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992) 
android.app.ActivityThread.access$600(ActivityThread.java:127) 
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158) 
android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
E/AndroidRuntime(24463): at android.app.ActivityThread.main(ActivityThread.java:4511) 
java.lang.reflect.Method.invokeNative(Native Method) 
java.lang.reflect.Method.invoke(Method.java:511) 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:976) 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:743) 
    at dalvik.system.NativeStart.main(Native Method) 
E/AndroidRuntime(24463): Caused by: java.lang.SecurityException: WifiService: Neither user 10112 nor current process has android.permission.ACCESS_WIFI_STATE. 
E/AndroidRuntime(24463): at android.os.Parcel.readException(Parcel.java:1327) 
android.os.Parcel.readException(Parcel.java:1281) 
android.net.wifi.IWifiManager$Stub$Proxy.getScanResults(IWifiManager.java:688) 
android.net.wifi.WifiManager.getScanResults(WifiManager.java:804) 
com.example.wifisignalstrength.MainActivity.onCreate(MainActivity.java:47) 
android.app.Activity.performCreate(Activity.java:4486) 
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052) 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931) 
... 11 more 
+0

發表您的堆棧跟蹤。你還期望別人猜測你的設備上發生了什麼? – njzk2

+3

'用戶10112和當前進程都沒有android.permission.ACCESS_WIFI_STATE.'似乎很明顯。 – kcoppock

回答

1

添加的權限

android.permission.ACCESS_WIFI_STATE

到AndroidManifest.xml文件