Исключение безопасности при доступе к Wi-Fi в Android - PullRequest
14 голосов
/ 23 ноября 2011

Пожалуйста, смотрите следующий код

    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);
    }   

Хотя я добавил разрешение в файле манифеста как

   <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" />

но все равно выдает следующую ошибку

   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.

Пожалуйста, помогите, почему это происходит

Ответы [ 3 ]

16 голосов
/ 17 февраля 2012

Чтобы иметь доступ к Wi-Fi, вам нужен android: name = "android.permission.ACCESS_WIFI_STATE", как вы уже знаете.

Если вы включаете или отключаете соединение Wi-Fi, вам также потребуются оба разрешения: ACCESS_WIFI_STATE и CHANGE_WIFI_STATE

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

Это должно сделать это для вас.

5 голосов
/ 08 июля 2014

добавить следующие строки

    <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" />

надеюсь, что они помогут!

3 голосов
/ 23 ноября 2011

Это должно быть «использование-разрешение», а не «разрешение пользователя». неправильное написание

...