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.



@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.


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"

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.


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



1

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


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"

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.