Как добавить разрешение манифеста в приложение?
Я пытаюсь получить доступ к HTTP-ссылке с помощью HttpURLConnection
В Android для загрузки файла, но я получаю это предупреждение в LogCat
:
предупредить/системы.err (223): java.сеть.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...
a Uses 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'
}