rob*_*rob 402 android exception android-manifest
我试图HttpURLConnection在Android中使用HTTP链接来下载文件,但我收到此警告LogCat:
WARN/System.err(223):java.net.SocketException:权限被拒绝(可能缺少INTERNET权限)
我已将android.Manifest.permission添加到我的应用程序中,但它仍然提供相同的异常.
Ant*_*ney 875
假设您没有从LogCat错误描述中设置权限,这里是我的AndroidManifest.xml文件的内容,可以访问互联网:
<manifest xlmns:android...>
...
<uses-permission android:name="android.permission.INTERNET" />
<application ...
</manifest>
Run Code Online (Sandbox Code Playgroud)
除此之外,您可以从互联网上下载文件.
Mar*_*era 62
如果有人会遇到同样的问题,那就是区分大小写的陈述,所以错误的情况意味着你的申请将无法获得许可.
错误
<uses-permission android:name="ANDROID.PERMISSION.INTERNET" />
Run Code Online (Sandbox Code Playgroud)
正确
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)
这个问题可能会发生,即.在IDE中自动完成
Rog*_*gus 34
如果您正在使用Eclipse ADT插件进行开发,请AndroidManifest.xml在Android Manifest Editor中打开(应该是AndroidManifest.xml从项目文件列表中打开的默认操作).
然后,选择Permissions编辑器底部的选项卡(Manifest - Application - Permissions - Instrumentation - AndroidManifest.xml),然后单击Add...a Uses Permission并从右侧的下拉列表中选择所需的权限,或者只需复制必要的android.permission.INTERNET权限(例如您需要的权限).
Ter*_*yur 34
<?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>
Run Code Online (Sandbox Code Playgroud)
Jus*_*koi 25
对于 Flutter 开发者来说。
去
android/app/main/AndroidManifest.xml
外
应用标签
但里面
清单标签
添加
<uses-permission android:name="android.permission.INTERNET" />
nit*_*esh 22
将以下行复制到应用程序清单文件并粘贴到<application> 标记之前.
<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)
将权限放在<application/>标记下面会有效,但会给你警告.因此,请务必将其放在<application/>标签声明之前.
Abd*_*leh 15
在您的应用程序标签中添加以下行:
android:usesCleartextTraffic="true"
Run Code Online (Sandbox Code Playgroud)
看起来像下面的代码:
<application
....
android:usesCleartextTraffic="true"
....>
Run Code Online (Sandbox Code Playgroud)
并在上面添加以下标签application
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Run Code Online (Sandbox Code Playgroud)
像那样:
<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>
Run Code Online (Sandbox Code Playgroud)
小智 12
使用eclipse时,请按照以下步骤操作
1)双击清单以在编辑器上显示它
2)单击清单编辑器下方的权限选项卡
3)单击
出现的对话框上的添加按钮4)单击使用权限.(通常是列表中的最后一项)
5)注意出现在rigth侧的视图选择"android.permission.INTERNET"
6)然后一系列Ok,最后保存.
希望这可以帮助
我迟到了,但我想完成答案。
一个权限被添加在manifest.xml像
<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)
这对于没有提示用户权限的标准权限来说已经足够了。但是,如果是危险权限,仅添加权限是不够的。请参阅android 文档。像相机,存储权限。
<uses-permission android:name="android.permission.CAMERA"/>
Run Code Online (Sandbox Code Playgroud)
您将需要征得用户的许可。我使用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
}
});
Run Code Online (Sandbox Code Playgroud)
将此库添加到您的应用
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.tbruyelle:rxpermissions:0.10.1'
implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1'
}
Run Code Online (Sandbox Code Playgroud)