我正在尝试在Anrdoid M中执行HTTP请求。但每次我收到错误:
java.lang.SecurityException:Permission denied(缺少INTERNET权限?)
据我所知,Android M中默认情况下每个应用都拥有Internet权限。那么为什么会出现此错误?
我还尝试将权限添加到我的清单并获得运行时权限,但都没有成功。
<?xml version="1.0" encoding="utf-8"?>
<application
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
答案 0 :(得分:2)
据我所知,Android M中默认情况下每个APp都有INTERNET权限
不,他们没有。
那么为什么会出现这种错误?
显然,您没有<uses-permission>
元素或it is in the wrong spot。
并获得运行时权限
INTERNET
权限不是dangerous
,因此运行时权限系统不需要。
答案 1 :(得分:2)
您必须在申请标记
之外写下权限<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
要
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
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>
答案 2 :(得分:1)
对于特定的android.permission.INTERNET权限,对于将访问Internet的应用程序仍然是必需的。如果开发人员发布应用程序而未在Android清单中定义该应用程序,则在第一次进行连接尝试时将抛出异常,并且应用程序可能会崩溃。这和以前没什么不同。
因此,您可以在清单中检查互联网和网络状态的许可
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
&#13;
答案 3 :(得分:0)