2010-01-30 21 views
311

estoy tratando de acceder enlace HTTP utilizando HttpURLConnection en Android para descargar un archivo, pero me estoy haciendo esta advertencia en LogCat:¿Cómo agregar el permiso de manifiesto a la aplicación de Android?

WARN/System.err (223): java.net.SocketException: Permiso denegado (tal vez falta el permiso de INTERNET)

He agregado android.Manifest.permission a mi aplicación, pero sigue dando la misma excepción.

+0

pegar su contenido manifiesta en permisos, qué conceder permisos para Internet? –

+0

agregué import android.Manifest.permission; a la aplicación, nada más. ¿Qué más tengo que añadir a conceder permisos – rob

+2

mirada en mi respuesta a continuación y ver si eso ayuda, y no tengo ni idea de lo que 'android.Manifest.permission' importación va a hacer por usted si usted no tiene el permiso de Internet conjunto de el archivo AndroidManifest.xml –

Respuesta

712

Suponiendo que no tiene permisos definidos en su descripción del error LogCat, aquí está mi contenido de mi archivo AndroidMainfest.xml que tenga acceso a internet:

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

Aparte de eso, que debe estar bien para descargar una archivo de internet.

+3

Si encuentras respuestas que resuelven su pregunta o parecen servicial, es útil seleccionar como "contestado" y/o upvote, que ayuda a la comunidad para cualquier persona encontrarse con los mismos problemas. No eso es sólo dirigidas a esta pregunta, pero otra pregunta que han pedido también –

+0

yo no sabía de ello, voy a hacer eso a ciencia cierta si esto va a resolver mi problema – rob

+0

informe posterior si se encuentra con algo diferente y me será más que feliz de ayudar –

31

Si está utilizando el complemento Eclipse ADT para su desarrollo, abra AndroidManifest.xml en el Editor de Manifiesto de Android (debería ser la acción predeterminada para abrir AndroidManifest.xml de la lista de archivos del proyecto).

A continuación, seleccione la ficha Permissions lo largo de la parte inferior del editor (Manifest - Application - Permissions - Instrumentation - AndroidManifest.xml), a continuación, haga clic en Add... un Uses Permission y seleccione el permiso deseada en el menú desplegable a la derecha, o simplemente copiar y pegar en el que es necesario (como por ejemplo el android.permission.INTERNET permiso que requirió).

10

Al utilizar Eclipse, siga estos pasos

1) Haga doble clic en el manifiesto para mostrar en el editor de
2) Haga clic en la ficha permisos por debajo del editor de manifiesto
3) Haga clic en el botón Añadir
4) en el cuadro de diálogo que aparece Haga clic en el permiso de usos. (Usualmente el último elemento en la lista)
5) Observe la vista que aparece en el lado derecho Seleccione "android.permission.INTERNET"
6) Luego, una serie de Ok y finalmente guardar.

Esperanza esto ayuda

28
<?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> 
17

Copia la siguiente línea a su archivo de manifiesto de la aplicación y pegar antes de la etiqueta <application>.

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

Colocar el permiso debajo de la etiqueta <application/> va a funcionar, pero le dará aviso. Así que tenga cuidado de colocarlo antes de la declaración de etiqueta <application/>.

+0

Al escribir este comentario, va ** fuera ** del elemento de la aplicación pero dentro del manifiesto. por ejemplo: ...

6

Sólo tiene que añadir esto a su manifiesto de Android:

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

que puede ser también interesante en el contexto de la adición de permisos de Internet para su aplicación:

Google también ha dado a cada aplicación de acceso a Internet, de manera efectiva eliminando el permiso de acceso a Internet. Oh, claro, los desarrolladores de Android todavía tienen que declarar que quieren acceso a Internet al armar la aplicación.Pero los usuarios ya no pueden ver el permiso de acceso a Internet cuando instalan una aplicación y las aplicaciones actuales que no tienen acceso a Internet ahora pueden obtener acceso a Internet con una actualización automática sin necesidad de avisarle.

Fuente: http://www.howtogeek.com/190863/androids-app-permissions-were-just-simplified-now-theyre-much-less-secure/

El fondo es que usted todavía tiene que añadir permisos de Internet en el archivo de manifiesto de la aplicación, pero se actualizará en los dispositivos de usuario sin pedirles permiso nuevo.

42

En caso de que alguien tenga problemas con el mismo problema, es sensible a las mayúsculas, por lo que el caso incorrecto significa que su aplicación no obtendrá el permiso.

MAL

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

CORRECTO

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

Este problema puede ocurrir es decir. en función de autocompletar en IDE

+1

Gracias! Perdí todo el día preguntándome por qué mi aplicación no funcionaba. Soy nuevo en Android Studio y este asunto no se produjo en Eclipse antes :) gracias – InspiredCoder

+0

este es un trabajo para mí @Marek Sebera –

+0

Y perdí mi día entero averiguar lo que realmente diferencia entre ellos, OMG su pequeño capital * * * y * 'ANDROID.PERMISSION' y' android.permission';): p – fWd82

Cuestiones relacionadas