- 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: ograniczyć dostęp do określonych komponentów lub funkcji tej lub innych aplikacji. Więcej informacji o tym, jak działają uprawnienia, znajdziesz w sekcji Uprawnienia w omówieniu pliku manifestu aplikacji i w sekcji Wskazówki dotyczące bezpieczeństwa.
- atrybuty:
android:description
- Czytelny dla użytkownika opis uprawnień, dłuższy i dłuższy
niż etykieta. Może ona na przykład wyświetlać wyjaśnienie
gdy użytkownik zostanie poproszony o zgodę.
aby przyznać je innej aplikacji.
Ten atrybut jest ustawiony jako odwołanie do zasobu ciągu znaków. W przeciwieństwie do atrybutu
label
nie może to być nieprzetworzony ciąg znaków. android:icon
- Odniesienie do rysowalnego zasobu dla ikony reprezentującej uprawnienia.
android:label
- Czytelna dla użytkownika nazwa uprawnienia.
Dla wygody etykietę można ustawić bezpośrednio jako nieprzetworzony ciąg znaków w trakcie programowania aplikacji. Pamiętaj jednak: gdy aplikacja jest gotowa do publikacji, ustaw ją jako odwołanie do zasobu w postaci ciągu, aby można je było zlokalizować w taki sam sposób jak inne ciągi tekstowe w interfejsie.
android:name
- Nazwa, która będzie używana w
kodu odwołującego się do uprawnienia, np.
<uses-permission>
lub Atrybutypermission
komponentów aplikacji.Uwaga: system nie zezwala na deklarowanie wielu pakietów. uprawnienia o tej samej nazwie, chyba że wszystkie pakiety są podpisane ten sam certyfikat. Jeśli pakiet deklaruje uprawnienia, system nie zezwala użytkownik może zainstalować inne pakiety z tą samą nazwą uprawnienia, chyba że te pakiety są podpisane tym samym certyfikatem co pierwszy pakiet.
Z tego powodu Google zaleca, aby uprawnienia były poprzedzone nazwą pakietu aplikacji, za pomocą odwrotnych nazw domenowych. Stosuj się do tego prefiksu prefiksem
.permission.
, a potem dodaj opis funkcja reprezentowana przez uprawnienie w górnej części SNAKE_CASE. Na przykład:com.example.myapp.permission.ENGAGE_HYPERSPACE
Przestrzeganie tej zalecenia pozwala uniknąć konfliktów w nazwach i łatwiej zidentyfikować właściciela. i celu niestandardowego.
android:permissionGroup
- Przypisuje to uprawnienie grupie. Wartość tego atrybutu to
nazwa grupy, która jest zadeklarowana za pomocą
<permission-group>
element lub innej aplikacji. Jeśli ten atrybut nie jest skonfigurowany, uprawnienia nie należy do grupy. android:protectionLevel
-
Opisuje potencjalne ryzyko wynikające z uprawnień i wskazuje procedurę, którą system ma zastosować przy określaniu czy udzielić uprawnień aplikacji, która o nie prosi.
Każdy poziom ochrony składa się z podstawowego typu uprawnień i z co najmniej 0 poziomów uprawnień. flagami. Na przykład poziom ochrony
"dangerous"
nie zawiera flagami. Z kolei poziom ochrony"signature|privileged"
to połączenie podstawowego typu uprawnień"signature"
i Flaga"privileged"
.W tabeli poniżej znajdziesz wszystkie podstawowe typy uprawnień. Listę flag znajdziesz tu
protectionLevel
Wartość Znaczenie "normal"
Wartość domyślna. Uprawnienie o mniejszym ryzyku, które umożliwia wysyłanie próśb dostęp aplikacji do izolowanych funkcji na poziomie aplikacji za pomocą dla innych aplikacji, systemu lub użytkownika. System automatycznie przyznaje ten typ aplikacji wysyłającej żądanie podczas instalacji, bez prosi o wyraźną zgodę użytkownika, chociaż zawsze może sprawdzić te uprawnienia przed instalacją. "dangerous"
Uprawnienie o wyższym ryzyku, które przyznaje aplikacji żądającej dostępu dostępu do prywatnych danych użytkownika lub kontroli nad urządzeniem, które może mogą negatywnie wpłynąć na użytkownika. Ponieważ tego typu uprawnienia stwarza potencjalne ryzyko, system może nie automatycznie udzielenie jej adresowi zgłoszeniowego. Na przykład niebezpieczne uprawnienia, których żąda aplikacja, mogą być wyświetlane użytkownika i wymagają potwierdzenia przed kontynuacją, lub w inny można zastosować metodę unikania automatycznego przyznawania korzystanie z takich obiektów. "signature"
Uprawnienie przyznane przez system tylko wtedy, gdy żądanie aplikacja jest podpisana tym samym certyfikatem co aplikacja w którym zadeklarowano uprawnienia. Jeśli certyfikaty są zgodne, system automatycznie przyzna uprawnienia bez powiadamiania użytkownika lub z prośbą o wyraźną zgodę użytkownika. "knownSigner"
Uprawnienie przyznane przez system tylko wtedy, gdy żądanie aplikacja jest podpisana przez dozwolony certyfikat. Jeśli certyfikat żądającego znajduje się na liście, system automatycznie przyzna uprawnienia bez powiadamiania użytkownika lub z prośbą o wyraźną zgodę użytkownika. "signatureOrSystem"
Stary synonim słowa
"signature|privileged"
. Wycofano w interfejsie API poziom 23.Uprawnienie przyznawane przez system tylko tym aplikacjom, które w specjalnym folderze w obrazie systemu Android lub jest podpisane tym samym certyfikatem co aplikacja, która zadeklarowała uprawnienia. Unikaj korzystania z tej opcji, ponieważ
"signature"
poziom ochrony jest wystarczający dla większości potrzeb i działa niezależnie gdzie są zainstalowane aplikacje."signatureOrSystem"
– określone uprawnienia specjalne w sytuacjach, gdy wielu dostawców ma wbudowane aplikacje w system. i muszą wyraźnie udostępniać określone cechy, razem z innymi.
- wprowadzone w:
- Poziom API 1
- zobacz też:
<uses-permission>
<permission-tree>
<permission-group>
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2024-08-22 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Brak potrzebnych mi informacji"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Zbyt skomplikowane / zbyt wiele czynności do wykonania"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Nieaktualne treści"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Problem z tłumaczeniem"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Problem z przykładami/kodem"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Inne"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Łatwo zrozumieć"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Rozwiązało to mój problem"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Inne"
}]
{"lastModified": "Ostatnia aktualizacja: 2024-08-22 UTC."}
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2024-08-22 UTC."]]