Как добавить разрешение манифеста в приложение?
Я пытаюсь получить доступ к HTTP-ссылке с помощью HttpURLConnection в Android, чтобы скачать файл, но я получаю это предупреждение в LogCat:
предупредить/системы.err (223): java.net.SocketException: отказано в разрешении (возможно, отсутствует разрешение интернета)
я добавил android.Декларация.разрешение на мое приложение, но его все еще дает то же исключение.
9 ответов:
предполагая, что у вас нет разрешений, установленных из вашего
LogCatописание ошибки, вот мое содержимое для моегоAndroidMainfest.xmlфайл, который имеет доступ к интернету:<manifest xlmns:android...> ... <uses-permission android:name="android.permission.INTERNET" /> <application ... </manifest>кроме этого, вы должны быть в порядке, чтобы загрузить файл из интернета.
в случае, если кто-то будет бороться с той же проблемой это чувствительно к регистру заявление, поэтому неправильный случай означает, что ваше приложение не получит разрешения.
неправильно
<uses-permission android:name="ANDROID.PERMISSION.INTERNET" />правильно
<uses-permission android:name="android.permission.INTERNET" />эта проблема может произойти ie. на автозаполнение в IDE
если вы используете плагин Eclipse ADT для своей разработки, откройте
AndroidManifest.xmlв Редакторе Манифеста Android (должно быть действие по умолчанию для открытияAndroidManifest.xmlиз списка файлов проекта).затем выберите
Permissionsвкладка в нижней части редактора (Manifest - Application - Permissions - Instrumentation - AndroidManifest.xml), затем нажмите кнопкуAdd...aUses Permissionи выберите нужное разрешение из списка справа, или просто скопируйте и вставьте в нужную (например,android.permission.INTERNETразрешение требуется).
<?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>
скопируйте следующую строку в файл манифеста приложения и вставьте перед
<application>тег.<uses-permission android:name="android.permission.INTERNET"/>размещение разрешения ниже
<application/>тег будет работать, но даст вам предупреждение. Так что будьте осторожны, чтобы разместить его перед<application/>декларации теге.
при использовании eclipse выполните следующие действия
1) дважды щелкните манифест, чтобы показать его в Редакторе
2) Перейдите на вкладку разрешения под редактором манифеста
3) Нажмите на кнопку Add
4) в появившемся диалоговом окне нажмите кнопку использует разрешение. (Обычно последний пункт в списке)
5) Обратите внимание на вид, который появляется на стороне rigth выберите "android.разрешение.Интернет"
6) затем серия Ok и, наконец, сохранить.
Надеюсь, что это помогает
просто добавьте это в свой манифест android:
<uses-permission android:name="android.permission.INTERNET"/>
Это может быть также интересно в контексте добавления интернет-разрешения для вашего приложения:
Google также предоставил каждому приложению доступ в интернет, эффективно удалив разрешение на доступ в интернет. О, конечно, разработчики Android все еще должны объявить, что они хотят доступ в интернет при сборке приложения. Но пользователи больше не могут видеть разрешение на доступ в интернет при установке приложения, а текущие приложения, которые не имеют доступа в Интернет, теперь могут получить доступ в интернет с автоматическим обновлением без запроса.
суть в том, что вам все еще нужно добавить разрешение на интернет в файл манифеста, но приложение будет обновляться на устройствах пользователя, не запрашивая у них новое разрешение.
Я опаздываю, но я хочу завершить ответ.
разрешение добавляется в
manifest.xmlкак<uses-permission android:name="android.permission.INTERNET"/>хотя это не достаточно, чтобы добавить разрешение в манифест, если это опасное разрешение. Смотрите андроид док. Как камера, разрешения на хранение.
<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' }
Comments