Die Berechtigung wird nur für die System-App erteilt

98

Ich habe eine System-App , die Systemberechtigungen verwendet, und ich habe diese Berechtigungen im Manifest aufgeführt. Eclipse gibt den folgenden Fehler aus, wenn ich versuche, einen Build zu erstellen (Befehlszeilen-Build funktioniert):

Die Berechtigung wird nur für System-Apps erteilt

Mir ist bereits bewusst, dass für meine App Systemberechtigungen erforderlich sind, und dies ist für mich kein Problem, da meine Anwendung nur auf gerooteten Telefonen verwendet wird. Also möchte ich diesen Fehler unterdrücken, weiß jemand wie?

BEARBEITEN
Mein Projekt wird bereits in der Befehlszeile einwandfrei kompiliert, installiert, ausgeführt usw. Mein Problem besteht darin, dass Eclipse einen Fehler für eine legitime Manifestdatei ausgibt.

Caner
quelle
2
Haben Sie diese stackoverflow.com/q/9494965/603744
Andro Selva
@AndroSelva es hat nichts damit zu tun, mein Projekt wird bereits in der Befehlszeile gut kompiliert, installiert, ausgeführt usw. Mein Problem besteht darin, dass Eclipse einen Fehler für eine legitime Manifestdatei ausgibt. IMO sollte es nur in diesem Fall eine Warnung geben.
Caner

Antworten:

205

In Eclipse:

Fenster -> Einstellungen -> Android -> Flusenfehlerprüfung.

In der Liste finden Sie einen Eintrag mit ID = ProtectedPermission. Stellen Sie den Schweregrad auf einen niedrigeren Wert als Fehler ein. Auf diese Weise können Sie das Projekt weiterhin mit Eclipse kompilieren.

In Android Studio:

Datei -> Einstellungen -> Editor -> Inspektionen

Unter Android Lint, finden Using system app permission. Deaktivieren Sie entweder das Kontrollkästchen oder wählen Sie einen niedrigeren Schweregrad als Fehler.

Ole
quelle
1
Vielen Dank! In Android Studio 1.2 fand ich dies unter Datei -> Einstellungen -> Editor -> Inspektionen.
Aaron
Ich möchte die Bildschirmhelligkeit programmgesteuert ändern. Ich habe den Lint unter Einstellungen bearbeitet. Beim Versuch, die Bildschirmhelligkeit programmgesteuert zu ändern, wird jedoch eine Sicherheitsausnahme ausgelöst. Jeder, der eine Lösung zur Implementierung dieser Funktion in Android 3.1 über Marshmallow hat, teilt diese bitte mit.
Nithinjith
3
Gehen Sie in Android Studio 2.1 zu Datei -> Einstellungen -> Editor -> Inspektionen und erweitern Sie Android> Flusen> Korrektheit. Wählen Sie "System-App-Berechtigung verwenden", ändern Sie den Schweregrad oder deaktivieren Sie das Kontrollkästchen.
Ezekiel Baniaga
2
Es war unter Android > Lint > Correctnessfür mich.
Beyondo
74

Um diesen Fehler nur für eine Instanz zu ignorieren, fügen Sie das tools:ignore="ProtectedPermissions"Attribut Ihrer Berechtigungserklärung hinzu. Hier ist ein Beispiel:

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

Sie müssen toolsdem Manifest-Stammelement einen Namespace hinzufügen

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
Jesta
quelle
3
Dies ist die richtige Antwort. Warum die gesamte Inspektion deaktivieren, wenn sie nur teilweise benötigt wird? Danke mein Herr!
Yoraco Gonzales
Sie müssen den Namespace hinzufügen ... xmlns: tools = " schemas.android.com/tools "
lila Kohl
13

Haben Sie von Zeit zu Zeit den gleichen Fehler (wenn ich den Installationsort im Manifest auf "extern bevorzugen" setze). Projekt einfach reinigen und neu aufbauen. Funktioniert bei mir.

Amalia
quelle
3

Wenn Sie im Manifest eine Berechtigung zum Hinzufügen hinzufügen, gehen Sie in Eclipse zu project und clic

  1. Klicken Sie auf Projekt
  2. Klicken Sie auf sauberes Projekt, das ist alles

k auf sauberes Projekt

Adiii
quelle
2
tools:ignore="ProtectedPermissions"

Versuchen Sie, dieses Attribut zu dieser Berechtigung hinzuzufügen.

user10206860
quelle
1

Einstellungen -> EditorEditor -> Inspektionen -> Android Lint -> Deaktivieren Sie das Kontrollkästchen Verwenden der System-App-Berechtigung

Văn Vũ
quelle
1

Pfad in Android Studio auf dem Mac:

Android Studio -> Einstellungen -> Editor -> Inspektionen

Erweitern Sie Android -> Erweitern Sie Flusen -> Erweitern Sie Korrektheit

Deaktivieren Sie das Kontrollkästchen Systembenutzungsberechtigung verwenden

Klicken Sie auf "BEWERBEN" -> "OK"

Karishma Chaudhary
quelle