我试图在Android中使用HttpURLConnection访问HTTP链接来下载文件,但我在LogCat中得到这个警告:

WARN/System.err(223): java.net.SocketException:权限被拒绝(可能缺少INTERNET权限)

我已经添加了android.Manifest.permission到我的应用程序,但它仍然给出相同的异常。


当前回答

如果您正在使用Eclipse ADT插件进行开发,请在Android清单编辑器中打开AndroidManifest.xml(应从项目文件列表中打开AndroidManifest.xml的默认操作)。

然后,选择编辑器底部的权限选项卡(Manifest - Application - Permissions - Instrumentation - AndroidManifest.xml),然后点击添加…a使用权限,并从右边的下拉菜单中选择所需的权限,或者只是复制粘贴到必要的权限(如android.permission.INTERNET权限)。

其他回答

我迟到了,但我想完成答案。

在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'
}

在使用eclipse时,请遵循以下步骤

双击清单以在编辑器中显示它 单击清单编辑器下面的permissions选项卡 点击添加按钮 在出现的对话框中单击使用权限。(通常是清单上的最后一项) 注意右边出现的视图选择"android.permission.INTERNET" 然后一系列的Ok,最后保存。

希望这能有所帮助

权限名称区分大小写

为了防止别人遇到同样的问题,这是区分大小写的语句,所以错误的大小写意味着你的应用程序将无法获得许可。

错误的

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

正确的

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

这个问题可能会发生。在IDE中自动完成

将以下行复制到应用程序清单文件中,并粘贴在<application>标记之前。

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

将权限放在<application/>标记下面可以工作,但会给您警告。所以要注意将它放在<application/>标记声明之前。

如果您正在使用Eclipse ADT插件进行开发,请在Android清单编辑器中打开AndroidManifest.xml(应从项目文件列表中打开AndroidManifest.xml的默认操作)。

然后,选择编辑器底部的权限选项卡(Manifest - Application - Permissions - Instrumentation - AndroidManifest.xml),然后点击添加…a使用权限,并从右边的下拉菜单中选择所需的权限,或者只是复制粘贴到必要的权限(如android.permission.INTERNET权限)。