Ich versuche, über HttpURLConnection
Android auf den HTTP-Link zuzugreifen , um eine Datei herunterzuladen, erhalte jedoch folgende Warnung LogCat
:
WARN / System.err (223): java.net.SocketException: Berechtigung verweigert (möglicherweise fehlt die INTERNET-Berechtigung)
Ich habe android.Manifest.permission
meiner Anwendung hinzugefügt , aber es gibt immer noch die gleiche Ausnahme.
android
exception
android-manifest
rauben
quelle
quelle
import android.Manifest.permission
für Sie tun wird, wenn Sie keine INTERNET-Berechtigung in der Datei AndroidManifest.xml festgelegt habenAntworten:
Angenommen, Sie haben keine Berechtigungen aus Ihrer
LogCat
Fehlerbeschreibung festgelegt. Hier ist mein Inhalt für meineAndroidManifest.xml
Datei, die Zugriff auf das Internet hat:Ansonsten sollten Sie in Ordnung sein, eine Datei aus dem Internet herunterzuladen.
quelle
uses-permission
innerhalb desapplication
Tags, nur dasmanifest
.Der Berechtigungsname lautet CASE-SENSITIVE
Falls jemand mit demselben Problem zu kämpfen hat, wird zwischen Groß- und Kleinschreibung unterschieden. Ein falscher Fall bedeutet also, dass Ihre Bewerbung nicht die Erlaubnis erhält.
FALSCH
RICHTIG
Dieses Problem kann auftreten, z. bei automatischer Vervollständigung in IDE
quelle
ANDROID.PERMISSION
undandroid.permission
;): pquelle
Wenn Sie das Eclipse ADT-Plugin für Ihre Entwicklung verwenden, öffnen Sie es
AndroidManifest.xml
im Android Manifest Editor (sollte die Standardaktion zum ÖffnenAndroidManifest.xml
aus der Liste der Projektdateien sein).Wählen Sie anschließend die
Permissions
Registerkarte am unteren Rand des Editors (Manifest - Application - Permissions - Instrumentation - AndroidManifest.xml
) aus, klicken Sie aufAdd...
aUses Permission
und wählen Sie die gewünschte Berechtigung aus der Dropdown-Liste rechts aus, oder kopieren Sie sie einfach in die erforderlicheandroid.permission.INTERNET
Berechtigung (z. B. die erforderliche Berechtigung).quelle
Kopieren Sie die folgende Zeile in Ihre Anwendungsmanifestdatei und fügen Sie sie vor dem
<application>
Tag ein.Das Platzieren der Berechtigung unter dem
<application/>
Tag funktioniert, gibt Ihnen jedoch eine Warnung. Stellen Sie also sicher, dass Sie es vor der<application/>
Tag-Deklaration platzieren.quelle
Befolgen Sie bei Verwendung von Eclipse die folgenden Schritte
1) Doppelklicken Sie auf das Manifest, um es im Editor
anzuzeigen. 2) Klicken Sie auf die Registerkarte Berechtigungen unter dem Manifest-Editor.
3) Klicken Sie auf die Schaltfläche Hinzufügen.
4) Klicken Sie im angezeigten Dialogfeld auf. (Normalerweise das letzte Element in der Liste)
5) Beachten Sie die Ansicht, die auf der rechten Seite angezeigt wird. Wählen Sie "android.permission.INTERNET".
6) Dann eine Reihe von OK und schließlich speichern.
Hoffe das hilft
quelle
Ich bin spät dran, aber ich möchte die Antwort vervollständigen.
Eine Berechtigung wird in
manifest.xml
like hinzugefügtDies reicht für Standardberechtigungen aus, bei denen dem Benutzer keine Berechtigung erteilt wird. Es reicht jedoch nicht aus, die Berechtigung nur zum Manifestieren hinzuzufügen, wenn es sich um eine gefährliche Berechtigung handelt. Siehe Android Doc . Wie Kamera, Speicherberechtigungen.
Sie müssen den Benutzer um Erlaubnis bitten . Ich verwende die RxPermission- Bibliothek, eine weit verbreitete Bibliothek, um um Erlaubnis zu bitten. Weil es langer Code ist, den wir schreiben müssen, um um Erlaubnis zu bitten.
Fügen Sie diese Bibliothek Ihrer App hinzu
quelle
Dies kann auch im Zusammenhang mit dem Hinzufügen einer INTERNET-Berechtigung zu Ihrer Anwendung interessant sein:
Quelle: http://www.howtogeek.com/190863/androids-app-permissions-were-just-simplified-now-theyre-much-less-secure/
Unter dem Strich müssen Sie noch die INTERNET-Berechtigung in die Manifestdatei einfügen, aber die Anwendung wird auf den Geräten des Benutzers aktualisiert, ohne dass er um eine neue Berechtigung gebeten wird.
quelle
Sie müssen sowohl den Netzwerk- als auch den Zugriffsnetzwerkstatus in der Manifestdatei verwenden, während Sie versuchen, über den Android-Emulator zu laden oder auf das Internet zuzugreifen.
Wenn Sie nur die Berechtigung .INTERNET erteilen, wird kein Zugriff auf das Internet gewährt.
quelle