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.

Caner
fonte
2
Você verificou stackoverflow.com/q/9494965/603744
Andro Selva
@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.

Ole
fonte
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"
Jesta
fonte
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.

Amalia
fonte
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

Adiii
fonte
2
tools:ignore="ProtectedPermissions"

Tente adicionar este atributo a essa permissão.

user10206860
fonte
1

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

Văn Vũ
fonte
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"

Karishma Chaudhary
fonte