Исключение безопасности путем доступа к Wi-Fi в Android
См. следующий код
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.
Пожалуйста, помогите, почему это происходит.
Ответы
Ответ 1
Чтобы иметь доступ к Wi-Fi, вам нужен андроид: 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" />
Это должно сделать это для вас.
Ответ 2
добавить следующие строки
<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
Это должно быть "использование-разрешение", а не "разрешение пользователя". неправильно написано