El permiso solo se otorga a la aplicación del sistema

98

Tengo una aplicación del sistema que usa permisos del sistema y tengo esos permisos enumerados en el manifiesto. Eclipse da el siguiente error cuando intento hacer una compilación (la compilación de la línea de comandos funciona):

El permiso solo se otorga a las aplicaciones del sistema

Ya soy consciente de que mi aplicación requiere permisos del sistema y no es un problema para mí porque mi aplicación se usará solo en teléfonos rooteados. Entonces quiero eliminar este error, ¿alguien sabe cómo?

EDITAR
Mi proyecto ya se compila bien en la línea de comandos, se instala, se ejecuta, etc. Mi problema es que eclipse da un error para un archivo de manifiesto legítimo.

Caner
fuente
2
¿Revisaste esto? Stackoverflow.com/q/9494965/603744
Andro Selva
@AndroSelva no está relacionado, mi proyecto ya se compila bien en la línea de comandos, se instala, se ejecuta, etc. Mi problema es que eclipse da un error para un archivo de manifiesto legítimo. En mi opinión, solo debería producir una advertencia en este caso.
Caner

Respuestas:

205

En Eclipse:

Ventana -> Preferencias -> Android -> Comprobación de errores de pelusa.

En la lista, busque una entrada con ID = ProtectedPermission. Establezca la gravedad en un valor inferior a Error. De esta manera, aún puede compilar el proyecto usando Eclipse.

En Android Studio:

Archivo -> Configuración -> Editor -> Inspecciones

Debajo Android Lint, ubique Using system app permission. Desmarque la casilla de verificación o elija una Gravedad menor que Error.

Viejo
fuente
1
¡Gracias! En Android Studio 1.2, encontré esto en Archivo -> Configuración -> Editor -> Inspecciones.
Aaron
Quiero cambiar el brillo de la pantalla mediante programación. He editado la pelusa en la configuración. Pero está lanzando una excepción de seguridad al intentar cambiar el brillo de la pantalla mediante programación. Cualquiera que tenga alguna solución para implementar esta función en Android 3.1 por encima de Marshmallow, por favor comparta.
Nithinjith
3
En Android Studio 2.1, vaya a Archivo -> Configuración -> Editor -> Inspecciones y luego expanda Android> Lint> Corrección. Seleccione "Usar permiso de aplicación del sistema", cambie la gravedad o desmarque la casilla de verificación.
Ezekiel Baniaga
2
Fue bajo Android > Lint > Correctnesspara mí.
Beyondo
74

Para ignorar este error solo en una instancia, agregue el tools:ignore="ProtectedPermissions"atributo a su declaración de permiso. Aquí hay un ejemplo:

<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"
    tools:ignore="ProtectedPermissions" />

Tienes que agregar un toolsespacio de nombres en el elemento raíz del manifiesto

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
Jesta
fuente
3
Esta es la respuesta correcta. ¿Por qué deshabilitar toda la inspección cuando solo se necesita parcialmente? ¡Gracias Señor!
Yoraco Gonzales
Deberá agregar el espacio de nombres ... xmlns: tools = " schemas.android.com/tools "
purplecabbage
13

Tengo el mismo error de vez en cuando (cuando configuro la ubicación de instalación en "preferir externo" en el manifiesto). Simplemente limpie y reconstruya el proyecto. Funciona para mi.

Amalia
fuente
3

cuando agregue permiso en el manifiesto, luego en eclipse vaya al proyecto y haga clic

  1. haga clic en el proyecto
  2. haga clic en el proyecto limpio, eso es todo

k en proyecto limpio

Adiii
fuente
2
tools:ignore="ProtectedPermissions"

Intente agregar este atributo a ese permiso.

usuario10206860
fuente
1

Preferencias -> EditorEditor -> Inspecciones -> Android Lint -> desmarque el elemento usando el permiso de la aplicación del sistema

Văn Vũ
fuente
1

Ruta en Android Studio en mac:

Android Studio -> Preferencias -> Editor -> Inspecciones

Expanda Android -> Expanda Pelusa -> Expanda Corrección

Desmarque la casilla de verificación para usar el permiso de la aplicación del sistema

Haga clic en "APLICAR" -> "Aceptar"

Karishma Chaudhary
fuente