<autorizzazione>

:
<permission android:description="string resource"
            android:icon="drawable resource"
            android:label="string resource"
            android:name="string"
            android:permissionGroup="string"
            android:protectionLevel=["normal" | "dangerous" |
                                     "signature" | ...] />
contenuto in:
<manifest>
description:
Dichiara un'autorizzazione di sicurezza utilizzata per limitare l'accesso a componenti o funzionalità specifici di questa o altre applicazioni. Per ulteriori informazioni sul funzionamento delle autorizzazioni, consulta la sezione Autorizzazioni nella panoramica del file manifest dell'app e i suggerimenti per la sicurezza.
:
android:description
Una descrizione leggibile dell'autorizzazione, più lunga e più informativa dell'etichetta. Potrebbe essere mostrata, ad esempio, per spiegare all'utente l'autorizzazione quando viene chiesto all'utente di concedere l'autorizzazione a un'altra applicazione.

Questo attributo è impostato come riferimento a una risorsa stringa. A differenza dell'attributo label, non può essere una stringa non elaborata.

android:icon
Un riferimento a una risorsa disegnabile per un'icona che rappresenta l'autorizzazione.
android:label
Un nome leggibile dall'utente per l'autorizzazione.

Per praticità, l'etichetta può essere impostata direttamente come stringa non elaborata durante lo sviluppo dell'applicazione. Tuttavia, quando l'applicazione è pronta per la pubblicazione, impostala come riferimento a una risorsa stringa, in modo che possa essere localizzata come altre stringhe nell'interfaccia utente.

android:name
Il nome da utilizzare nel codice per fare riferimento all'autorizzazione, ad esempio in un elemento <uses-permission> o negli attributi permission dei componenti dell'applicazione.

Nota: il sistema non consente a più pacchetti di dichiarare un'autorizzazione con lo stesso nome, a meno che tutti i pacchetti non siano firmati con lo stesso certificato. Se un pacchetto dichiara un'autorizzazione, il sistema non consente all'utente di installare altri pacchetti con lo stesso nome di autorizzazione, a meno che questi non siano firmati con lo stesso certificato del primo pacchetto.

Per questo motivo, Google consiglia di anteporre alle autorizzazioni il nome del pacchetto dell'app, utilizzando la denominazione in stile dominio inversa. Segui questo prefisso con .permission. e una descrizione della funzionalità rappresentata dall'autorizzazione nella parte superiore di SNAKE_CASE. Ad esempio: com.example.myapp.permission.ENGAGE_HYPERSPACE.

Seguendo questo consiglio si evitano conflitti di denominazione e aiuta a identificare chiaramente il proprietario e l'intenzione di un'autorizzazione personalizzata.

android:permissionGroup
Assegna questa autorizzazione a un gruppo. Il valore di questo attributo è il nome del gruppo, dichiarato con l'elemento <permission-group> in questa o in un'altra applicazione. Se questo attributo non è impostato, l'autorizzazione non appartiene a un gruppo.
android:protectionLevel

Descrive il potenziale rischio associato all'autorizzazione e indica la procedura che il sistema deve seguire per determinare se concedere l'autorizzazione a un'applicazione che la richiede.

Ogni livello di protezione è costituito da un tipo di autorizzazione di base e da zero o più flag. Ad esempio, il livello di protezione "dangerous" non ha flag. Al contrario, il livello di protezione "signature|privileged" è una combinazione del tipo di autorizzazione di base "signature" e del flag "privileged".

La tabella seguente mostra tutti i tipi di autorizzazione di base. Per un elenco dei flag, consulta protectionLevel.

Valore Significato
"normal" Il valore predefinito. Un'autorizzazione a basso rischio che concede alle applicazioni richieste l'accesso a funzionalità isolate a livello di applicazione con un rischio minimo per altre applicazioni, per il sistema o per l'utente. Il sistema concede automaticamente questo tipo di autorizzazione a un'applicazione richiedente al momento dell'installazione, senza chiedere l'approvazione esplicita dell'utente, anche se l'utente ha sempre la possibilità di esaminare queste autorizzazioni prima dell'installazione.
"dangerous" Un'autorizzazione a rischio più elevato che concede a un'applicazione richiedente l'accesso ai dati privati dell'utente o il controllo sul dispositivo che può avere un impatto negativo sull'utente. Poiché questo tipo di autorizzazione introduce un potenziale rischio, il sistema potrebbe non concederla automaticamente all'applicazione richiedente. Ad esempio, le autorizzazioni pericolose richieste da un'applicazione potrebbero essere mostrate all'utente e richiedere la conferma prima di procedere oppure potrebbe essere adottato qualche altro approccio per evitare che l'utente conceda automaticamente l'utilizzo di queste strutture.
"signature" Un'autorizzazione concessa dal sistema solo se l'applicazione richiedente è firmata con lo stesso certificato dell'applicazione che ha dichiarato l'autorizzazione. Se i certificati corrispondono, il sistema concede automaticamente l'autorizzazione senza avvisare l'utente o chiedere il suo consenso esplicito.
"knownSigner" Un'autorizzazione concessa dal sistema solo se l'applicazione richiedente è firmata con un certificato consentito. Se il certificato del richiedente è presente nell'elenco, il sistema concede automaticamente l'autorizzazione senza notificare l'utente o richiedere l'approvazione esplicita dell'utente.
"signatureOrSystem"

Vecchio sinonimo di "signature|privileged". Deprecata nel livello API 23.

Un'autorizzazione concessa dal sistema solo alle applicazioni che si trovano in una cartella dedicata sull'immagine di sistema Android o che sono firmate con lo stesso certificato dell'applicazione che ha dichiarato l'autorizzazione. Evita di utilizzare questa opzione, poiché il livello di protezione "signature" è sufficiente per la maggior parte delle esigenze e funziona a prescindere da dove sono installate le app.

L'autorizzazione "signatureOrSystem" viene utilizzata per determinate situazioni speciali in cui più fornitori hanno applicazioni integrate in un'immagine di sistema e devono condividere esplicitamente funzionalità specifiche perché vengono create insieme.

introdotto in:
Livello API 1
consulta anche:
<uses-permission>
<permission-tree>
<permission-group>