我正在尝试使用Android中的HttpURLConnection
访问HTTP链接以下载文件,但是在LogCat
中出现了以下警告:
WARN/System.err(223): java.net.SocketException: Permission denied (maybe missing INTERNET permission)
我已将android.Manifest.permission
添加到我的应用程序中,但仍然出现相同的异常。
我正在尝试使用Android中的HttpURLConnection
访问HTTP链接以下载文件,但是在LogCat
中出现了以下警告:
WARN/System.err(223): java.net.SocketException: Permission denied (maybe missing INTERNET permission)
我已将android.Manifest.permission
添加到我的应用程序中,但仍然出现相同的异常。
假设您没有从LogCat
错误描述中设置权限,这是我AndroidManifest.xml
文件的内容,其中具有访问互联网的权限:
<manifest xlmns:android...>
...
<uses-permission android:name="android.permission.INTERNET" />
<application ...
</manifest>
除此以外,你可以放心地从互联网下载文件。
<uses-permission>
插入到manifest
和application
中,有什么区别吗? - dialex如果有人遇到同样的问题,它是区分大小写的,因此错误的大小写会导致您的应用程序无法获取权限。
错误示例
<uses-permission android:name="ANDROID.PERMISSION.INTERNET" />
正确
<uses-permission android:name="android.permission.INTERNET" />
这个问题可能会在IDE的自动完成中出现。
ANDROID.PERMISSION
和 android.permission
;) :p - fWd82<?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/>
标签声明之前。
针对Flutter开发者。
前往
android/app/main/AndroidManifest.xml
在
manifest标签里
的外部但是在
application标签里
添加
<uses-permission android:name="android.permission.INTERNET" />
将以下行添加到应用程序标记中:
android:usesCleartextTraffic="true"
要像下面的代码一样:
<application
....
android:usesCleartextTraffic="true"
....>
请在application
标签上方添加以下标记
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
要做到那样:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.themarona.app">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:usesCleartextTraffic="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
在使用Eclipse时,请按照以下步骤操作:
希望这可以帮到您。
虽然我来晚了,但我想完成这个回答。
在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'
}
import android.Manifest.permission
会对您有什么帮助。 - Anthony Forloney