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.



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


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"

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.


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


2
tools:ignore="ProtectedPermissions"

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


1

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


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"

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.