运行我的应用程序时出现以下异常:
java.net.SocketException: Permission denied (maybe missing INTERNET permission)
如何解决丢失的权限问题?
将INTERNET权限添加到清单文件中 .
你必须添加这一行:
<uses-permission android:name="android.permission.INTERNET" />
在AndroidManifest.xml中的应用程序标记之外
在Google Play的最新版本中,Google取消了对互联网许可的需求,因为“现在大多数应用都需要它” . 但是,对于使用旧版本的用户,仍建议将以下代码留在清单中
就像下面这样放在上面
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.avocats.activeavocats" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="16" /> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.exp.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>
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
如果你想在你的应用程序中使用互联网以及检查网络状态,即应用程序是否连接到互联网,那么你必须使用 application 标签之外的下面的代码 .
application
对于Internet权限:
对于Access网络状态:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
完整代码:
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="16" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".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>
如果只是使用互联网然后使用 -
如果你正在获得互联网状态,那么也使用 -
就在应用程序标签上方 .
忘记将权限添加到清单中添加此代码作为方法
public static boolean hasPermissions(Context context, String... permissions) { if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) { for (String permission : permissions) { if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) { return false; } } } return true; }
并将其写入您的主页
int PERMISSION_ALL = 1; String[] PERMISSIONS = {Manifest.permission.READ_CONTACTS, Manifest.permission.WRITE_CONTACTS, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_SMS, Manifest.permission.CAMERA}; if (!hasPermissions(this, PERMISSIONS)) { ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL); }
只需将以下代码放在AndroidManifest中:
根据当前版本,Android不会要求获得与互联网交互的权限,但您可以添加以下代码,这将有助于使用旧版本的用户只需在AndroidManifest中添加这些
使用这些:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
要在代码中请求Internet权限,您必须将这些权限添加到AndroidManifest.xml文件中
有关详细说明,请转到https://developer.android.com/training/basics/network-ops/connecting
11 回答
将INTERNET权限添加到清单文件中 .
你必须添加这一行:
在AndroidManifest.xml中的应用程序标记之外
在Google Play的最新版本中,Google取消了对互联网许可的需求,因为“现在大多数应用都需要它” . 但是,对于使用旧版本的用户,仍建议将以下代码留在清单中
就像下面这样放在上面
如果你想在你的应用程序中使用互联网以及检查网络状态,即应用程序是否连接到互联网,那么你必须使用
application
标签之外的下面的代码 .对于Internet权限:
对于Access网络状态:
完整代码:
如果只是使用互联网然后使用 -
如果你正在获得互联网状态,那么也使用 -
就在应用程序标签上方 .
忘记将权限添加到清单中添加此代码作为方法
并将其写入您的主页
只需将以下代码放在AndroidManifest中:
根据当前版本,Android不会要求获得与互联网交互的权限,但您可以添加以下代码,这将有助于使用旧版本的用户只需在AndroidManifest中添加这些
使用这些:
要在代码中请求Internet权限,您必须将这些权限添加到AndroidManifest.xml文件中
有关详细说明,请转到https://developer.android.com/training/basics/network-ops/connecting