web-dev-qa-db-fra.com

De quelle permission ai-je besoin pour accéder à Internet à partir d'une application Android?

Je reçois l'exception suivante lors de l'exécution de mon application:

Java.net.SocketException: Permission denied (maybe missing INTERNET permission)

Comment résoudre le problème de permission manquant?

578
Janusz

Mise à jour:
Google a supprimé la nécessité de demander l’autorisation d’Internet pour la dernière version de Google Play.

Ajoutez l’autorisation [INTERNET] [1] à votre fichier manifeste.

Vous devez ajouter cette ligne:

<uses-permission Android:name="Android.permission.INTERNET" /> 

en dehors de la balise d'application dans votre AndroidManifest.xml

[1]: https://developer.Android.com/training/basics/network-ops/connecting.html

1201

Dans la dernière version de Google Play, Google supprimait le besoin de demander la permission pour Internet car "la plupart des applications en ont besoin de toute façon". Cependant, pour les utilisateurs ayant des versions plus anciennes, il est toujours recommandé de laisser le code ci-dessous dans votre manifeste.

<uses-permission Android:name="Android.permission.INTERNET" /> 
114
Finley Smith

il suffit de mettre au dessus de la ligne comme ci-dessous

<?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>
74
Kirtikumar A.
<uses-permission Android:name="Android.permission.INTERNET" /> 
<uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE"/>
41
AndroidDev

Si vous souhaitez utiliser Internet dans votre application et vérifier l'état du réseau, c'est-à-dire si l'application est connectée à Internet, vous devez utiliser le code ci-dessous en dehors de la balise application.

Pour une autorisation Internet:

<uses-permission Android:name="Android.permission.INTERNET" />

Pour l'état du réseau d'accès:

<uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE" />

Code complet:

<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>
12
Amy

si juste en utilisant internet alors use-

<uses-permission Android:name="Android.permission.INTERNET" />

si vous obtenez l'état d'Internet, utilisez également -

<uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE" />

juste au-dessus de la balise d'application.

7
Akshay Paliwal

oublier d'ajouter la permission dans le manifeste Ajouter ce code en tant que méthode

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;
}

et écrivez ceci dans votre Main

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);
    }
4
Vaibhav Joshi

Il suffit de mettre le code ci-dessous dans AndroidManifest:

<uses-permission Android:name="Android.permission.INTERNET" /> 
<uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE"/>
3
Hiren Gondaliya

Selon les versions actuelles, Android ne demande pas la permission d'interagir avec Internet, mais vous pouvez ajouter le code ci-dessous, qui aidera les utilisateurs de versions plus anciennes. Ajoutez-les simplement dans AndroidManifest

<uses-permission Android:name="Android.permission.INTERNET" />
<uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE"/>
3
Kashif Faraz Shamsi

Utilisez ceux-ci:

<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" />
3
Olorunfemi Ajibulu

Pour demander une autorisation Internet dans votre code, vous devez les ajouter à votre fichier AndroidManifest.xml.

<uses-permission Android:name="Android.permission.INTERNET" />

Pour plus d'explications détaillées goto https://developer.Android.com/training/basics/network-ops/connecting

1
trustidkid

Google a supprimé la nécessité de demander l'autorisation d'Internet pour la dernière version. Néanmoins, pour demander une autorisation Internet dans votre code, vous devez les ajouter à votre fichier AndroidManifest.xml.

<uses-permission Android:name="Android.permission.INTERNET"/>
0
Kanwarpreet Singh