Uprawnienie jest przyznawane tylko aplikacji systemowej


98

Mam aplikację systemową, która używa uprawnień systemowych i mam te uprawnienia wymienione w manifeście. Eclipse wyświetla następujący błąd, gdy próbuję utworzyć kompilację (działa kompilacja z wiersza poleceń):

Uprawnienie jest przyznawane tylko aplikacjom systemowym

Wiem już, że moja aplikacja wymaga uprawnień systemowych i nie stanowi to dla mnie problemu, ponieważ moja aplikacja będzie używana tylko na zrootowanych telefonach. Więc chcę stłumić ten błąd, ktoś wie jak?

EDYTUJ
Mój projekt już dobrze kompiluje się w wierszu poleceń, instaluje się, uruchamia itd. Mój problem polega na tym, że zaćmienie wyświetla błąd dla prawidłowego pliku manifestu.



@AndroSelva to nie jest powiązane, mój projekt już dobrze kompiluje się w wierszu poleceń, instaluje, uruchamia itp. Mój problem polega na tym, że zaćmienie wyświetla błąd dla prawidłowego pliku manifestu. IMO powinno to tylko generować ostrzeżenie w tym przypadku.
Caner

Odpowiedzi:


205

W Eclipse:

Okno -> Preferencje -> Android -> Sprawdzanie błędów kłaczków.

Na liście znajdź wpis z ID = ProtectedPermission. Ustaw wartość istotności na mniejszą niż błąd. W ten sposób nadal możesz skompilować projekt za pomocą Eclipse.

W Android Studio:

Plik -> Ustawienia -> Edytor -> Inspekcje

Pod Android Lint, zlokalizuj Using system app permission. Usuń zaznaczenie pola wyboru lub wybierz poziom ważności niższy niż błąd.


1
Dzięki! W Android Studio 1.2 znalazłem to w Plik -> Ustawienia -> Edytor -> Inspekcje.
Aaron

Chcę programowo zmienić jasność ekranu. Edytowałem Lint w ustawieniach. Ale rzuca wyjątek bezpieczeństwa podczas próby programowej zmiany jasności ekranu. Każdy ma jakieś rozwiązanie do zaimplementowania tej funkcji w systemie Android 3.1 powyżej Marshmallow, udostępnij.
Nithinjith

3
W Android Studio 2.1 przejdź do Plik -> Ustawienia -> Edytor -> Inspekcje, a następnie rozwiń Android> Lint> Poprawność. Wybierz „Używanie uprawnień aplikacji systemowej”, zmień ważność lub odznacz pole wyboru.
Ezekiel Baniaga

2
To było Android > Lint > Correctnessdla mnie pod.
Beyondo

75

Aby zignorować ten błąd tylko dla jednej instancji, dodaj tools:ignore="ProtectedPermissions"atrybut do deklaracji uprawnień. Oto przykład:

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

Musisz dodać toolsprzestrzeń nazw w głównym elemencie manifestu

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

3
To jest właściwa odpowiedź. Po co wyłączać całą inspekcję, gdy jest ona tylko częściowo potrzebna. Dziękuję Panu!
Yoraco Gonzales

Trzeba dodać przestrzeń nazw ... xmlns: Narzędzia = „ schemas.android.com/tools
purplecabbage

13

Od czasu do czasu mam ten sam błąd (kiedy ustawiam lokalizację instalacji na „preferuj zewnętrzną” w manifeście). Po prostu wyczyść i przebuduj projekt. Pracuje dla mnie.


3

kiedy twoje zezwolenie na dodawanie w manifeście, potem w eclipse, przejdź do projektu i clic

  1. kliknij projekt
  2. kliknij czysty projekt to wszystko

k na czysty projekt


2
tools:ignore="ProtectedPermissions"

Spróbuj dodać ten atrybut do tego uprawnienia.


1

Preferencje -> EditorEditor -> Inspekcje -> Android Lint -> odznacz pozycję Korzystanie z aplikacji systemowej permissio


1

Ścieżka w Android Studio na komputerze Mac:

Android Studio -> Preferencje -> Edytor -> Inspekcje

Rozwiń Android -> Rozwiń Lint -> Rozwiń poprawność

Usuń zaznaczenie pola wyboru Korzystanie z uprawnień aplikacji systemowej

Kliknij „ZASTOSUJ” -> „OK”

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.