Как добавить манифест разрешения для приложения?

Я пытаюсь получить доступ к HTTP-ссылке, используя HttpURLConnection в Android для загрузки файла, но я получаю это предупреждение в LogCat:

WARN/System.err(223): java.net.SocketException: разрешение отклонено (возможно, отсутствует разрешение на доступ в Интернет)

Я добавил android.Manifest.permission в свое приложение, но оно по-прежнему дает то же исключение.

Ответ 1

Предполагая, что у вас не установлены разрешения из LogCat ошибки LogCat, вот мое содержимое для моего файла AndroidManifest.xml который имеет доступ к Интернету:

<manifest xlmns:android...>
 ...
 <uses-permission android:name="android.permission.INTERNET" />
 <application ...
</manifest>

Кроме этого, у вас должно быть хорошо, чтобы загрузить файл из Интернета.

Ответ 2

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

НЕПРАВИЛЬНО

<uses-permission android:name="ANDROID.PERMISSION.INTERNET" />

ПРАВИЛЬНО

<uses-permission android:name="ANDROID.PERMISSION.INTERNET" />

Эта проблема может произойти, т.е. по автозаполнению в IDE

Ответ 3

Если для разработки вы используете плагин Eclipse ADT, откройте AndroidManifest.xml в редакторе манифестов Android (это должно быть действие по умолчанию для открытия AndroidManifest.xml из списка файлов проекта).

Затем перейдите на вкладку " Permissions " в нижней части редактора (" Manifest - Application - Permissions - Instrumentation - AndroidManifest.xml), затем нажмите " Add... Uses Permission и выберите нужное разрешение в раскрывающемся меню справа или просто скопируйте его. -вставьте нужный файл (например, вам требуется разрешение android.permission.INTERNET).

Ответ 4

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

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="com.example.towntour.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Black.NoTitleBar" >
    <activity
        android:name="com.photoeffect.MainActivity"
        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>

Ответ 5

Скопируйте следующую строку в файл манифеста приложения и вставьте перед тегом <application>.

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

Размещение разрешения под тегом <application/> будет работать, но даст вам предупреждение. Поэтому позаботьтесь о его размещении перед объявлением тега <application/>.

Ответ 6

При использовании eclipse выполните следующие действия:

1) Дважды щелкните манифест, чтобы отобразить его в редакторе
2) Перейдите на вкладку "Разрешения" ниже редактора манифеста
3) Нажмите кнопку "Добавить"
4) в появившемся диалоговом окне Click использует разрешение. (Обычно последний элемент в списке)
5) Обратите внимание на представление, отображаемое на стороне сбоку. Выберите "android.permission.INTERNET"
6) Затем серия Ok и, наконец, сохраните.

Надеюсь, что это поможет

Ответ 7

Просто добавьте это в манифест андроида:

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

Ответ 8

Это также может быть интересно в контексте добавления разрешения INTERNET для вашего приложения:

Google также предоставил каждому Интернету доступ к Интернету, эффективно удалив разрешение на доступ в Интернет. О, конечно, разработчикам Android все равно придется объявить, что им нужен доступ в Интернет при создании приложения. Но пользователи больше не могут видеть разрешение на доступ в Интернет при установке приложения и текущих приложений, которые не имеют доступа к Интернету, теперь могут получить доступ в Интернет с автоматическим обновлением без запроса.

Источник: http://www.howtogeek.com/190863/androids-app-permissions-were-just-simplified-now-theyre-much-less-secure/

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

Ответ 9

Я опоздал, но я хочу завершить ответ.

Разрешение добавляется в manifest.xml как

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

Этого достаточно для стандартных разрешений, когда пользователю не предлагается разрешение. Тем не менее, недостаточно добавить разрешение только для манифеста, если это опасное разрешение. Смотрите Android док. Как камера, разрешения на хранение.

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

Вам нужно будет спросить разрешение у пользователя. Я использую библиотеку RxPermission, которая широко используется для запроса разрешения. Потому что это длинный код, который мы должны написать, чтобы спросить разрешения.

RxPermissions rxPermissions = new RxPermissions(this); // where this is an Activity instance // Must be done during an initialization phase like onCreate
rxPermissions
    .request(Manifest.permission.CAMERA)
    .subscribe(granted -> {
        if (granted) { // Always true pre-M
           // I can control the camera now
        } else {
           // Oups permission denied
        }
    });

Добавить эту библиотеку в ваше приложение

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

dependencies {
    implementation 'com.github.tbruyelle:rxpermissions:0.10.1'
    implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1'
}

Ответ 10

При попытке загрузить или получить доступ к Интернету через эмулятор Android вы должны использовать как состояние сети, так и состояние сети доступа в файле манифеста.

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

Если вы даете только разрешение .INTERNET, оно не будет иметь доступа к Интернету.