J'essaie d'accéder au lien HTTP à l'aide HttpURLConnection
d'Android pour télécharger un fichier, mais je reçois cet avertissement dans LogCat
:
WARN / System.err (223): java.net.SocketException: autorisation refusée (autorisation INTERNET peut-être manquante)
J'ai ajouté android.Manifest.permission
à ma demande, mais elle donne toujours la même exception.
import android.Manifest.permission
cela fera pour vous si vous n'avez pas l'autorisation INTERNET définie dans le fichier AndroidManifest.xmlRéponses:
En supposant que vous n'avez pas défini d'autorisations à partir de votre
LogCat
description d'erreur, voici le contenu de monAndroidManifest.xml
fichier qui a accès à Internet:En dehors de cela, vous devriez pouvoir télécharger un fichier sur Internet.
la source
uses-permission
à l'intérieur de laapplication
balise, seulement lemanifest
.Le nom de l'autorisation est SENSIBLE À LA CASE
Dans le cas où quelqu'un aurait du mal avec le même problème, il s'agit d'une déclaration sensible à la casse , donc une mauvaise casse signifie que votre application n'obtiendra pas l'autorisation.
FAUX
CORRECT
Ce problème peut se produire, par exemple. sur la saisie semi-automatique dans IDE
la source
ANDROID.PERMISSION
etandroid.permission
;): pla source
Si vous utilisez le plugin Eclipse ADT pour votre développement, ouvrez-le
AndroidManifest.xml
dans l'éditeur de manifeste Android (devrait être l'action par défaut pour l'ouverture àAndroidManifest.xml
partir de la liste des fichiers du projet).Ensuite, sélectionnez le
Permissions
onglet en bas de l'éditeur (Manifest - Application - Permissions - Instrumentation - AndroidManifest.xml
), puis cliquez surAdd...
aUses Permission
et sélectionnez l'autorisation souhaitée dans la liste déroulante à droite, ou copiez-collez simplement celle qui est nécessaire (telle que l'android.permission.INTERNET
autorisation dont vous avez besoin).la source
Copiez la ligne suivante dans votre fichier manifeste d'application et collez-la avant la
<application>
balise.Placer l'autorisation sous la
<application/>
balise fonctionnera, mais vous avertira. Veillez donc à le placer avant la<application/>
déclaration de la balise.la source
Lorsque vous utilisez eclipse, procédez comme suit
1) Double-cliquez sur le manifeste pour l'afficher dans l'éditeur
2) Cliquez sur l'onglet des autorisations sous l'éditeur de manifeste
3) Cliquez sur le bouton Ajouter
4) dans la boîte de dialogue qui s'affiche Cliquez sur utilise l'autorisation. (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 d'Ok et enfin enregistrez.
J'espère que cela t'aides
la source
Je suis en retard mais je veux compléter la réponse.
Une autorisation est ajoutée dans
manifest.xml
commeCela suffit pour les autorisations standard lorsqu'aucune autorisation n'est demandée à l'utilisateur. Cependant, il ne suffit pas d'ajouter une autorisation pour se manifester uniquement s'il s'agit d'une autorisation dangereuse. Voir le doc android . Comme la caméra, les autorisations de stockage.
Vous devrez demander la permission à l'utilisateur . J'utilise RxPermission bibliothèque qui est une bibliothèque largement utilisée pour demander la permission. Parce que c'est du code long que nous devons écrire pour demander la permission.
Ajoutez cette bibliothèque à votre application
la source
Cela peut également être intéressant dans le contexte de l'ajout d'une autorisation INTERNET à votre application:
La source: http://www.howtogeek.com/190863/androids-app-permissions-were-just-simplified-now-theyre-much-less-secure/
En fin de compte, vous devez toujours ajouter l'autorisation INTERNET dans le fichier manifeste, mais l'application sera mise à jour sur les appareils de l'utilisateur sans lui demander de nouvelle autorisation.
la source
Vous devez utiliser à la fois le réseau et l'état du réseau d'accès dans le fichier manifeste pendant que vous essayez de charger ou d'accéder à Internet via l'émulateur Android.
Si vous accordez uniquement l'autorisation .INTERNET, il n'accédera pas à Internet.
la source