通过访问android中的wifi安全例外

and*_*der 14 android wifi

请参阅以下代码

    wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
    if (wifi.isWifiEnabled() == false)
    {
        Toast.makeText(getApplicationContext(), "wifi is disabled..making it enabled", Toast.LENGTH_LONG).show();
        wifi.setWifiEnabled(true);
    }   
Run Code Online (Sandbox Code Playgroud)

虽然我已将清单文件中的权限添加为

   <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.wifi"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="8" />
<user-permission android:name="android.permission.ACCESS_WIFI_STATE" />
Run Code Online (Sandbox Code Playgroud)

但它仍然给出以下错误

   11-23 15:18:24.399: E/AndroidRuntime(6800): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test.wifi/com.test.wifi.WifiDemoActivity}: java.lang.SecurityException: WifiService: Neither user 10082 nor current process has android.permission.ACCESS_WIFI_STATE.
Run Code Online (Sandbox Code Playgroud)

请帮助解释为什么会这样

YoY*_*oMa 16

为了能够访问wifi,你需要android:name ="android.permission.ACCESS_WIFI_STATE",你已经知道了.

如果您正在启用或禁用wifi连接,您还需要两个权限:ACCESS_WIFI_STATE和CHANGE_WIFI_STATE

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />    
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
Run Code Online (Sandbox Code Playgroud)

那应该为你做.


vis*_*vis 5

添加以下行

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Run Code Online (Sandbox Code Playgroud)

希望他们帮忙!


rfs*_*010 3

它应该是“使用权限”而不是“用户权限”。拼写错误