A permissão é concedida apenas ao aplicativo do sistema


98

Eu tenho um aplicativo do sistema que usa permissões do sistema e tenho essas permissões listadas no manifesto. O Eclipse dá o seguinte erro quando tento fazer uma compilação (a compilação da linha de comando funciona):

A permissão é concedida apenas a aplicativos do sistema

Já estou ciente de que meu aplicativo requer permissões do sistema e isso não é um problema para mim porque meu aplicativo será usado apenas em telefones com acesso root. Por isso quero suprimir esse erro, alguém sabe como?

EDITAR
Meu projeto já compila bem na linha de comando, instala, executa etc. Meu problema é sobre o eclipse dando um erro para um arquivo de manifesto legítimo.



@AndroSelva não está relacionado, meu projeto já compila bem na linha de comando, instala, roda etc. Meu problema é sobre o eclipse dando um erro para um arquivo de manifesto legítimo. IMO, deve apenas produzir um aviso neste caso.
Caner de

Respostas:


205

No Eclipse:

Janela -> Preferências -> Android -> Verificação de erro do Lint.

Na lista, encontre uma entrada com ID = ProtectedPermission. Defina a Severidade para algo inferior a Erro. Dessa forma, você ainda pode compilar o projeto usando o Eclipse.

No Android Studio:

Arquivo -> Configurações -> Editor -> Inspeções

Abaixo Android Lint, localize Using system app permission. Desmarque a caixa de seleção ou escolha uma Gravidade inferior a Erro.


1
Obrigado! No Android Studio 1.2, encontrei isso em Arquivo -> Configurações -> Editor -> Inspeções.
Aaron

Desejo alterar o brilho da tela de maneira programática. Eu editei o Lint nas configurações. Mas está lançando alguma exceção de segurança ao tentar alterar o brilho da tela programaticamente. Alguém tem alguma solução para implementar esse recurso no Android 3.1 acima do Marshmallow, compartilhe.
Nithinjith,

3
No Android Studio 2.1, vá para Arquivo -> Configurações -> Editor -> Inspeções e expanda Android> Lint> Correção. Selecione "Usando permissão de aplicativo do sistema", altere a gravidade ou desmarque a caixa de seleção.
Ezekiel Baniaga,

2
Estava abaixo Android > Lint > Correctnesspara mim.
Beyondo

74

Para ignorar esse erro apenas em uma instância, adicione o tools:ignore="ProtectedPermissions"atributo à sua declaração de permissão. Aqui está um exemplo:

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

Você deve adicionar toolsnamespace no elemento raiz do manifesto

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"

3
Esta é a resposta certa. Por que desativar toda a inspeção quando ela é apenas parcialmente necessária. Obrigado senhor!
Yoraco Gonzales

Você precisará adicionar o namespace ... xmlns: tools = " schemas.android.com/tools "
purplecabbage

13

Tenho o mesmo erro de vez em quando (quando defino o local de instalação como "preferir externo" no manifesto). Apenas limpe e reconstrua o projeto. Funciona para mim.


3

quando você adicionar permissão no manifesto, em seguida, no eclipse, vá para projeto e clique

  1. clique no projeto
  2. clique em limpar projeto, isso é tudo

k no projeto limpo


2
tools:ignore="ProtectedPermissions"

Tente adicionar este atributo a essa permissão.


1

Preferências -> EditorEditor -> Inspeções -> Android Lint -> desmarque o item Usando permissão de aplicativo do sistema


1

Caminho no Android Studio no mac:

Android Studio -> Preferências -> Editor -> Inspeções

Expanda Android -> Expanda Lint -> Expanda Correção

Desmarque a caixa de seleção para usar permissão de aplicativo do sistema

Clique em "APLICAR" -> "OK"

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.