2012-02-17 82 views
2

我正在構建一個使用wifi的Android應用程序。
我已經在清單中正確聲明瞭這些使用權限,但由於某種原因,應用程序拋出了導致應用程序強制關閉的SecurityException。Android SecurityException ACCESS_WIFI_STATE

我將LogCat中安全異常的原因追溯到系統,表示它沒有access_wifi_state權限。這對我來說很奇怪,令人困惑,因爲我已經在清單中聲明瞭它。

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="android.wifi" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-permission android:name="ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="CHANGE_WIFI_STATE" /> 
    <uses-feature android:name="android.hardware.wifi" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-sdk android:minSdkVersion="8" /> 
    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 

     <activity 
      android:name="android.wifi.AndroidWiFiActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

這裏是導致異常的代碼:

package android.wifi; 

import android.app.Activity; 
import android.content.Context; 
import android.net.wifi.WifiManager; 
import android.location.LocationListener; 
import android.location.LocationManager; 
import android.os.Bundle; 
import android.widget.Button; 
import android.widget.TextView; 
import android.wifi.R; 

public class AndroidWiFiActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     TextView tv = (TextView) findViewById(R.id.textbox); 
     tv.setText("ABC 123"); 
     WifiManager wifiMgr = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
     if(wifiMgr.isWifiEnabled()) 
     { 
      tv.append("Wifi is enabled"); 
     } 
     else 
     { 
      tv.append("Wifi is disabled"); 
     } 

    } 
} 

任何幫助是極大的讚賞。謝謝。

回答

5

權限是:

android.permission.ACCESS_WIFI_STATE 
+1

,雖然我們在這是android.permission.CHANGE_WIFI_STATE – DigCamara 2012-02-17 00:20:54

+0

大。這是一個錯字。感謝你及時的答覆。很高興解決這個問題很簡單! – YoYoMa 2012-02-17 00:21:04

+0

@DigCamara - 對。謝謝。 – MByD 2012-02-17 00:22:08

相關問題