487 votes

Comment ajouter une autorisation de manifeste à une application ?

J'essaie d'accéder à un lien HTTP en utilisant HttpURLConnection dans Android pour télécharger un fichier, mais j'obtiens cet avertissement dans LogCat :

WARN/System.err(223) : java.net.SocketException : Permission refusée (peut-être une permission INTERNET manquante)

J'ai ajouté android.Manifest.permission à mon application mais elle donne toujours la même exception.

0 votes

Collez le contenu de votre manifeste-permission, avez-vous accordé des permissions pour INTERNET ?

0 votes

J'ai ajouté import Android.Manifest.permission ; à l'application, rien d'autre. Que dois-je ajouter pour accorder des permissions ?

2 votes

Regardez ma réponse ci-dessous et voyez si cela peut vous aider, et je n'ai aucune idée de ce que import android.Manifest.permission fera l'affaire si la permission INTERNET n'est pas définie dans le fichier AndroidManifest.xml.

1090voto

Anthony Forloney Points 30083

En supposant que vous n'avez pas de permissions définies à partir de vos LogCat description de l'erreur, voici le contenu de mon AndroidManifest.xml qui a accès à l'internet :

<manifest xlmns:android...>
 ...
 <uses-permission android:name="android.permission.INTERNET" />
 <application ...
</manifest>

En dehors de cela, vous devriez pouvoir télécharger un fichier sur Internet.

4 votes

Si vous trouvez des réponses qui résolvent votre question ou semblent utiles, il est utile de les sélectionner comme "répondues" et/ou de les "upvoter", cela aide la communauté pour toute personne rencontrant les mêmes problèmes. Cela ne s'applique pas seulement à cette question, mais aussi aux autres questions que vous avez posées.

0 votes

Je ne le savais pas, je vais le faire si cela résout mon problème.

0 votes

Si vous rencontrez quelque chose de différent, n'hésitez pas à me le signaler et je serai ravi de vous aider.

50voto

Teraiya Mayur Points 238
<?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>

34voto

Chris Points 1019

Si vous utilisez le plugin ADT d'Eclipse pour votre développement, ouvrez AndroidManifest.xml dans l'éditeur de manifeste Android (ce devrait être l'action par défaut pour ouvrir AndroidManifest.xml de la liste des fichiers du projet).

Ensuite, sélectionnez le Permissions en bas de l'éditeur ( Manifest - Application - Permissions - Instrumentation - AndroidManifest.xml ), puis cliquez sur Add... a Uses Permission et sélectionnez l'autorisation souhaitée dans la liste déroulante à droite, ou copiez-collez simplement l'autorisation nécessaire (comme l'autorisation android.permission.INTERNET permission nécessaire).

24voto

nitesh Points 82

Copiez la ligne suivante dans le fichier manifeste de votre application et collez-la avant l'élément <application> étiquette.

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

Placer l'autorisation sous le <application/> fonctionnera, mais vous donnera un avertissement. Veillez donc à la placer avant la balise <application/> déclaration de la balise.

0 votes

Au moment où j'écris ce commentaire, il va à l'extérieur de de l'élément d'application mais dans le manifeste. ex : <application> ... </application> <uses-permission Android:name=" Android.permission.INTERNET" /> </manifeste>

12voto

Mathayo Points 44

Si vous utilisez eclipse, suivez les étapes suivantes

1) Double-cliquez sur le manifeste pour l'afficher dans l'éditeur.
2) Cliquez sur l'onglet "Permissions" situé sous l'éditeur de manifeste.
3) Cliquez sur le bouton Ajouter
4) dans la boîte de dialogue qui apparaît, cliquez sur utilise la permission. (généralement le dernier élément de la liste).
5) Remarquez la vue qui apparaît sur le côté droit Sélectionnez "Android.permission.INTERNET".
6) Puis une série de Ok et enfin enregistrer.

J'espère que cela vous aidera

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X