我需要什么权限才能从android应用程序访问Internet?
我得到下面的exception运行我的应用程序:
java.net.SocketException: Permission denied (maybe missing INTERNET permission)
我如何解决遗漏的权限问题?
在最新的Google Play版本中,Google不再需要征询互联网的许可,因为“现在大多数应用程序都需要它”。 但是,对于使用较旧版本的用户,仍build议将代码保留在清单中
<uses-permission android:name="android.permission.INTERNET" />
将INTERNET权限添加到您的清单文件。
你必须添加这一行:
<uses-permission android:name="android.permission.INTERNET" />
在AndroidManifest.xml的应用程序标签之外
就像下面的线一样
<?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"/>
如果你想在你的应用程序中使用互联网以及检查networking状态,即应用程序是否连接到互联网,那么你必须在application
标签之外使用下面的代码。
对于Internet许可:
<uses-permission android:name="android.permission.INTERNET" />
对于访问networking状态:
<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>
如果只是使用互联网然后使用 –
<uses-permission android:name="android.permission.INTERNET" />
如果你正在获得互联网的状态,那么也使用 –
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
就在应用程序标签的上方。
只需在AndroidManifest中input以下代码:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
忘记将权限添加到清单中将此代码添加为方法
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); }
根据目前的版本,Android不会要求与互联网交互的权限,但您可以添加下面的代码,这将有助于使用旧版本的用户只需在AndroidManifest中添加这些代码
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>