我试图在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到我的应用程序,但它仍然给出相同的异常。
当前回答
<?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>
其他回答
**用于活动识别,如脚踏计数器
<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]
<?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>
在向应用程序添加INTERNET权限的情况下,这可能也很有趣:
谷歌还授予了每个应用程序上网权限,实际上是取消了上网权限。当然,Android开发者在制作应用程序时仍然需要声明他们想要上网。但用户在安装应用程序时不再可以看到上网权限,当前无法上网的应用程序现在可以通过自动更新获得上网权限,而无需提示。
来源:http://www.howtogeek.com/190863/androids-app-permissions-were-just-simplified-now-theyre-much-less-secure/
底线是你仍然需要在清单文件中添加INTERNET权限,但应用程序将在用户的设备上更新,而不需要他们申请新的权限。
将以下行复制到应用程序清单文件中,并粘贴在<application>标记之前。
<uses-permission android:name="android.permission.INTERNET"/>
将权限放在<application/>标记下面可以工作,但会给您警告。所以要注意将它放在<application/>标记声明之前。
如果你正在使用Android Studio,请将鼠标悬停在需要权限的代码上,然后单击“添加权限..”
然后你可以用git检查AndroidManifest.xml中的变化。