Próbuję uzyskać dostęp do łącza HTTP za pomocą HttpURLConnection
Androida, aby pobrać plik, ale otrzymuję to ostrzeżenie w LogCat
:
WARN / System.err (223): java.net.SocketException: Odmowa zezwolenia (być może brakuje uprawnienia do INTERNETU)
Dodałem android.Manifest.permission
do mojej aplikacji, ale nadal daje ten sam wyjątek.
android
exception
android-manifest
obrabować
źródło
źródło
import android.Manifest.permission
zrobi dla Ciebie, jeśli nie masz uprawnień INTERNET w pliku AndroidManifest.xmlOdpowiedzi:
Zakładając, że nie masz uprawnień ustawionych w
LogCat
opisie błędu, oto moja zawartość mojegoAndroidManifest.xml
pliku, który ma dostęp do Internetu:Poza tym pobieranie pliku z Internetu powinno być w porządku.
źródło
uses-permission
wewnątrzapplication
tagu nie ma elementu potomnego , tylkomanifest
.Nazwa pozwolenia to CASE-SENSITIVE
W przypadku, gdy ktoś będzie miał problem z tym samym problemem, jest to rozróżnianie wielkości liter , więc zła wielkość liter oznacza, że twoja aplikacja nie otrzyma pozwolenia.
ŹLE
POPRAWNY
Ten problem może się zdarzyć, tj. na autouzupełnianiu w IDE
źródło
ANDROID.PERMISSION
iandroid.permission
;): Pźródło
Jeśli używasz wtyczki Eclipse ADT do programowania, otwórz
AndroidManifest.xml
w Edytorze manifestu Androida (powinna to być domyślna akcja otwieraniaAndroidManifest.xml
z listy plików projektu).Następnie wybierz
Permissions
zakładkę u dołu edytora (Manifest - Application - Permissions - Instrumentation - AndroidManifest.xml
), a następnie kliknijAdd...
aUses Permission
i wybierz żądane uprawnienie z menu po prawej stronie lub po prostu skopiuj i wklej niezbędne (np.android.permission.INTERNET
Wymagane pozwolenie).źródło
Skopiuj następujący wiersz do pliku manifestu aplikacji i wklej przed
<application>
znacznikiem.Umieszczenie uprawnienia poniżej
<application/>
tagu będzie działać, ale wyświetli ostrzeżenie. Dlatego staraj się umieścić go przed<application/>
deklaracją tagu.źródło
Korzystając z Eclipse, wykonaj następujące kroki
1) Kliknij dwukrotnie manifest, aby pokazać go w edytorze
2) Kliknij kartę uprawnień poniżej edytora manifestu
3) Kliknij przycisk Dodaj
4) w wyświetlonym oknie dialogowym Kliknij używa uprawnień. (Zwykle ostatni element na liście)
5) Zwróć uwagę na widok, który pojawi się po prawej stronie Wybierz „android.permission.INTERNET”
6) Następnie serię OK i na koniec zapisz.
Mam nadzieję że to pomoże
źródło
Jestem spóźniony, ale chcę uzupełnić odpowiedź.
Pozwolenie jest dodawane w
manifest.xml
podobny sposóbTo wystarcza w przypadku standardowych uprawnień, w przypadku których użytkownik nie jest proszony o pozwolenie. Nie wystarczy jednak dodać uprawnienia tylko w celu zamanifestowania, jeśli jest to uprawnienie niebezpieczne. Zobacz android doc . Podobnie jak aparat, uprawnienia do przechowywania.
Musisz poprosić użytkownika o pozwolenie . Korzystam z biblioteki RxPermission, która jest powszechnie używaną biblioteką do proszenia o pozwolenie. Ponieważ jest to długi kod, który musimy napisać, aby poprosić o pozwolenie.
Dodaj tę bibliotekę do swojej aplikacji
źródło
Może to być również interesujące w kontekście dodawania uprawnień INTERNET do twojej aplikacji:
Źródło: http://www.howtogeek.com/190863/androids-app-permissions-were-just-simplified-now-theyre-much-less-secure/
Najważniejsze jest to, że nadal musisz dodać uprawnienie do INTERNETU w pliku manifestu, ale aplikacja zostanie zaktualizowana na urządzeniach użytkowników bez pytania o nowe uprawnienia.
źródło
Musisz użyć zarówno stanu sieci, jak i dostępu do stanu sieci w pliku manifestu, gdy próbujesz załadować lub uzyskać dostęp do Internetu za pomocą emulatora Androida.
Jeśli udzielasz tylko pozwolenia .INTERNET, nie uzyska on dostępu do Internetu.
źródło