<uprawnienia>

składnia:
<permission android:description="string resource"
            android:icon="drawable resource"
            android:label="string resource"
            android:name="string"
            android:permissionGroup="string"
            android:protectionLevel=["normal" | "dangerous" |
                                     "signature" | ...] />
zawarte w:
<manifest>
description:
Deklaruje uprawnienia związane z bezpieczeństwem używane do ograniczania dostępu do określonych komponentów lub funkcji tej bądź innych aplikacji. Więcej informacji o działaniu uprawnień znajdziesz w sekcji Uprawnienia w podsumowaniu pliku manifestu aplikacji oraz w sekcji Wskazówki dotyczące bezpieczeństwa.
atrybuty:
android:description
Zrozumiały dla użytkownika opis uprawnienia, który jest dłuższy i więcej informacji niż etykieta. Może na przykład wyświetlać informacje o uprawnieniach, gdy pojawia się prośba o przyznanie go innej aplikacji.

Ten atrybut jest ustawiony jako odwołanie do zasobu ciągu znaków. W przeciwieństwie do atrybutu label nie może on być nieprzetworzonym ciągiem znaków.

android:icon
Odwołanie do rysowalnego zasobu ikony reprezentującej uprawnienie.
android:label
Czytelna dla użytkownika nazwa uprawnienia.

Dla wygody podczas tworzenia aplikacji etykietę można ustawić bezpośrednio jako nieprzetworzony ciąg znaków. Gdy jednak aplikacja będzie gotowa do opublikowania, ustaw ją jako odwołanie do zasobu w postaci ciągu znaków, tak aby mogła zostać zlokalizowana w interfejsie tak samo jak inne ciągi znaków.

android:name
Nazwa używana w kodzie w celu odwoływania się do uprawnienia, np. w elemencie <uses-permission> lub atrybutach permission komponentów aplikacji.

Uwaga: system nie zezwala na deklarowanie uprawnienia o tej samej nazwie przez wiele pakietów, chyba że wszystkie pakiety są podpisane tym samym certyfikatem. Jeśli pakiet deklaruje uprawnienia, system nie zezwala użytkownikowi na instalowanie innych pakietów o tej samej nazwie uprawnień, chyba że są one podpisane tym samym certyfikatem co pierwszy pakiet.

Z tego powodu Google zaleca dodanie przedrostka uprawnień nazwą pakietu aplikacji i nadanie im nazw w odwrotnym stylu do domeny. Po tym prefiksie wpisz .permission., a następnie dodaj opis funkcji, którą reprezentuje to uprawnienie. Przykład: com.example.myapp.permission.ENGAGE_HYPERSPACE.

Zastosowanie się do tej rekomendacji pozwala uniknąć kolizji podczas nazewnictwa i ułatwia identyfikację właściciela uprawnienia niestandardowego oraz intencji związanych z tym uprawnieniem.

android:permissionGroup
Przypisuje to uprawnienie do grupy. Wartość tego atrybutu to nazwa grupy zadeklarowana za pomocą elementu <permission-group> w tej lub innej aplikacji. Jeśli ten atrybut nie jest ustawiony, uprawnienie nie należy do grupy.
android:protectionLevel

Wskazuje potencjalne ryzyko związane z uprawnieniem i wskazuje procedurę, którą system ma zastosować podczas określania, czy przyznać uprawnienia aplikacji żądającej dostępu.

Każdy poziom ochrony składa się z podstawowego typu uprawnień i 0 lub większej liczby flag. Na przykład poziom ochrony "dangerous" nie ma żadnych flag. W przeciwieństwie do tego poziom ochrony "signature|privileged" stanowi połączenie podstawowego typu uprawnienia "signature" i flagi "privileged".

Poniższa tabela przedstawia wszystkie podstawowe typy uprawnień. Listę flag znajdziesz w sekcji protectionLevel.

Wartość Znaczenie
"normal" Wartość domyślna. Uprawnienie niższego ryzyka, które daje aplikacjom możliwość wysyłania żądań dostępu do izolowanych funkcji na poziomie aplikacji przy minimalnym ryzyku dla innych aplikacji, systemu lub użytkownika. System automatycznie przyznaje tego rodzaju uprawnienia aplikacjom, które żądają instalacji, bez pytania użytkownika o wyraźną zgodę użytkownika. Użytkownik zawsze ma jednak możliwość sprawdzenia ich przed zainstalowaniem.
"dangerous" Uprawnienie większego ryzyka, które daje aplikacji wysyłającej prośbę dostęp do prywatnych danych użytkownika lub kontrolę nad urządzeniem, co może mieć negatywny wpływ na użytkownika. Ponieważ uprawnienia tego typu stwarzają potencjalne ryzyko, system może nie przyznać ich automatycznie aplikacji żądającej dostępu. Na przykład wszystkie niebezpieczne uprawnienia żądane przez aplikację mogą zostać wyświetlone użytkownikowi i będą wymagać potwierdzenia przed kontynuacją. Można też podjąć inne działania, aby uniknąć automatycznego przyznania użytkownikowi dostępu do takich funkcji.
"signature" Uprawnienie przyznawane przez system tylko wtedy, gdy aplikacja żądająca dostępu jest podpisana tym samym certyfikatem co aplikacja, która je zadeklarowała. Jeśli certyfikaty są zgodne, system automatycznie przyznaje uprawnienia, nie powiadamiając użytkownika ani nie prosząc użytkownika o wyraźną zgodę.
"knownSigner" Uprawnienie przyznawane przez system tylko wtedy, gdy aplikacja wysyłająca żądanie jest podpisana dozwolonym certyfikatem. Jeśli na liście znajduje się certyfikat osoby zgłaszającej, system automatycznie przyznaje uprawnienia bez powiadamiania użytkownika lub bez pytania o jego wyraźne zezwolenie.
"signatureOrSystem"

Stary synonim słowa "signature|privileged". Wycofano w interfejsie API na poziomie 23.

Uprawnienie przyznawane przez system tylko aplikacjom znajdującym się w oddzielnym folderze w obrazie Androida lub podpisanych tym samym certyfikatem co aplikacja, która zadeklarowała uprawnienie. Unikaj używania tej opcji, ponieważ poziom ochrony "signature" jest wystarczający dla większości potrzeb i działa niezależnie od miejsca zainstalowania aplikacji.

Uprawnienie "signatureOrSystem" jest używane w określonych sytuacjach, gdy wielu dostawców ma wbudowane aplikacje w obrazie systemu i wymaga wyraźnego udostępnienia określonych funkcji, ponieważ są one tworzone razem.

wprowadzone w:
Poziom interfejsu API 1
zobacz też:
<uses-permission>
<permission-tree>
<permission-group>