我试图在Android中使用HttpURLConnection访问HTTP链接来下载文件,但我在LogCat中得到这个警告:
WARN/System.err(223): java.net.SocketException:权限被拒绝(可能缺少INTERNET权限)
我已经添加了android.Manifest.permission到我的应用程序,但它仍然给出相同的异常。
我试图在Android中使用HttpURLConnection访问HTTP链接来下载文件,但我在LogCat中得到这个警告:
WARN/System.err(223): java.net.SocketException:权限被拒绝(可能缺少INTERNET权限)
我已经添加了android.Manifest.permission到我的应用程序,但它仍然给出相同的异常。
当前回答
**用于活动识别,如脚踏计数器
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />
**适用于互联网
<uses-permission android:name="android.permission.INTERNET" />
**用于拨打电话
<uses-permission android:name="android.permission.CALL_PHONE" />
[![enter image description here][1]][1]
其他回答
如果你正在使用Android Studio,请将鼠标悬停在需要权限的代码上,然后单击“添加权限..”
然后你可以用git检查AndroidManifest.xml中的变化。
如果您正在使用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'
}
**用于活动识别,如脚踏计数器
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />
**适用于互联网
<uses-permission android:name="android.permission.INTERNET" />
**用于拨打电话
<uses-permission android:name="android.permission.CALL_PHONE" />
[![enter image description here][1]][1]
在应用程序标签中添加以下行:
android:usesCleartextTraffic="true"
如下代码所示:
<application
....
android:usesCleartextTraffic="true"
....>
并在应用程序上面添加以下标签
<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>