Исключение getConnectionInfo()

#android #android-manifest #android-wifi

#Android #android-манифест #android-wifi

Вопрос:

Учитывая этот код:

 wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifi.getConnectionInfo();
  

… и эта строка в манифесте:

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

Я все еще получаю исключение:

 WifiService: Neither user 10057 nor current process has android.permission.ACCESS_WIFI_STATE.
  

Я выполняю отладку на Xoom, Honeycomb 3.1.

Если требуется какая-либо другая информация, пожалуйста, спросите.

РЕДАКТИРОВАТЬ: добавлен манифест

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.android.WiFiDemo"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="12" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
        <activity android:label="@string/app_name" android:name="WiFiDemo">
            <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
            <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
              <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>
  

Комментарии:

1. пожалуйста, отметьте один из ответов в качестве ответа

Ответ №1:

Попробуйте добавить

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

Редактировать:

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.WiFiDemo"
    android:versionCode="1"
    android:versionName="1.0">
    <uses-sdk android:minSdkVersion="12" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <application android:icon="@drawable/icon" android:label="@string/app_name"     android:debuggable="true">
        <activity android:label="@string/app_name" android:name="WiFiDemo">            
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>
  

Комментарии:

1. И убедитесь, что.. является прямым дочерним элементом тега manifest.

2. @Tommy, под прямым дочерним элементом я предположил, что вы имели в виду вне тега приложения. Добавление разрешения состояния сети не сработало; та же ошибка.

3. Манифест был добавлен в исходное сообщение.

4. пожалуйста, отметьте вопрос как ответ. если ни один из наших ответов не сделал этого, пожалуйста, опубликуйте свой собственный ответ и отметьте его как таковой

Ответ №2:

попробуйте это:

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.android.WiFiDemo"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="12" />

    <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
        <activity android:label="@string/app_name" android:name="WiFiDemo">
              <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

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