Condividi tramite


AppOpsManager Classe

Definizione

Le operazioni di app vengono usate per due scopi: Controllo di accesso e rilevamento.

[Android.Runtime.Register("android/app/AppOpsManager", DoNotGenerateAcw=true)]
public class AppOpsManager : Java.Lang.Object
[<Android.Runtime.Register("android/app/AppOpsManager", DoNotGenerateAcw=true)>]
type AppOpsManager = class
    inherit Object
Ereditarietà
AppOpsManager
Attributi

Commenti

Le operazioni di app vengono usate per due scopi: Controllo di accesso e rilevamento.

Le operazioni di app coprono un'ampia gamma di funzionalità che consentono di gestire il controllo di accesso e il monitoraggio delle autorizzazioni di runtime al rilevamento del consumo di batteria.

<h2>Controllo di< accesso/h2>

Le operazioni di app possono essere controllate per ogni uid o per ogni pacchetto. Quello usato dipende dal provider di API che gestisce questa app-op. Per qualsiasi app-op correlata alla sicurezza o alla privacy, il provider deve controllare l'app-op per ogni uid perché tutta la sicurezza e la privacy si basa sull'interfaccia utente in Android.

Per controllare l'accesso all'app-op può essere impostato su una modalità su: <dl><dt#MODE_DEFAULT<>dd>Comportamento predefinito, può essere diverso da app-op o app-op <dt><#MODE_ALLOWEDdd>Consenti l'accesso <dt#MODE_IGNORED><dd>Don't allow the access, ovvero non eseguire l'azione richiesta o restituire dati <segnaposto o no o segnaposto dt#MODE_ERRORED<>dd>Throw a SecurityException on access. Questa operazione può essere eliminata usando un ...noThrow metodo per controllare la modalità </dl>

I provider di API devono controllare la modalità restituita da #noteOp se consentono l'accesso alle operazioni controllate dall'app-op. #unsafeCheckOp deve essere usato per controllare la modalità se non viene concesso alcun accesso. Ad esempio, questo può essere usato per visualizzare lo stato dell'app-op nell'interfaccia utente o quando si controlla lo stato prima di chiamare #noteOp comunque in un secondo momento.

Se un'operazione fa riferimento a un intervallo di tempo ,ad esempio una sessione di registrazione audio, il provider di API deve usare #startOp e #finishOp invece di #noteOp.

<h3>Autorizzazioni di runtime e app-ops</h3>

Ogni autorizzazione di runtime definita dalla piattaforma (accanto ai modificatori in background) ha un'app op associata che viene usata per il rilevamento, ma anche per consentire errori invisibile all'utente. Ad esempio, se l'autorizzazione di runtime viene negata al chiamante ottiene un SecurityExceptionoggetto , ma se l'autorizzazione viene concessa e l'app-op è #MODE_IGNORED allora i chiamanti ottengono il comportamento segnaposto, ad esempio i callback di posizione non si verificherebbero.

<h3>Autorizzazioni< app/h3>

Le autorizzazioni per le operazioni di app sono autorizzazioni definite dalla piattaforma che possono essere sottoposte a override. Il controllo di sicurezza per le autorizzazioni app-op deve #MODE_DEFAULT default controllare lo stato di concessione delle autorizzazioni. Se lo stato app-op è impostato su #MODE_ALLOWED o #MODE_IGNORED lo stato dell'app-op deve essere controllato invece dello stato di concessione dell'autorizzazione.

Questa funzionalità consente di concedere l'accesso per impostazione predefinita alle app che soddisfano i requisiti per un determinato livello di autorizzazione. È comunque possibile eseguire l'override del comportamento quando necessario.

<h2>Tracking</h2>

App-ops tiene traccia di molti eventi importanti, inclusi tutti gli accessi alle API protette con autorizzazioni di runtime. Questa operazione viene eseguita monitorando quando un'app-op era #noteOp noted o #startOp started. I dati rilevati possono essere letti solo dai componenti di sistema.

<b>Vengono rilevati solo#startOp#noteOp/; #unsafeCheckOp non viene rilevata. È quindi importante chiamare #noteOp o #startOp quando si fornisce l'accesso a operazioni o dati protetti.</b>

Alcune app inoltrano l'accesso ad altre app. Ad esempio, un'app potrebbe ottenere la posizione dal provider di posizione del sistema e quindi inviare la posizione a un'app di terze parti. In questo caso l'app che passa i dati deve chiamare #noteProxyOp per segnalare il proxy di accesso. Questo può anche avere senso all'interno di una singola app se l'accesso viene inoltrato tra due parti del tag con tag di attribuzione diversi.

Un'app può registrare un oggetto OnOpNotedCallback per ottenere informazioni sugli accessi che il sistema sta monitorando. Poiché ogni autorizzazione di runtime ha un'app-op associata, questa API è particolarmente utile per un'app che vuole trovare accessi imprevisti ai dati privati.

Documentazione java per android.app.AppOpsManager.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Costruttori

AppOpsManager(IntPtr, JniHandleOwnership)

Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime.

Campi

ModeAllowed
Obsoleti.

Risultato di #checkOp, #noteOp, #startOp: il chiamante specificato è autorizzato a eseguire l'operazione specificata.

ModeDefault
Obsoleti.

Risultato di #checkOp, #noteOp, #startOp: il chiamante specificato deve usare il controllo di sicurezza predefinito.

ModeErrored
Obsoleti.

Risultato di #checkOpNoThrow, #noteOpNoThrow, #startOpNoThrow: il chiamante specificato non è autorizzato a eseguire l'operazione specificata e questo tentativo deve causare un errore irreversibile, in genere .SecurityException

ModeForeground
Obsoleti.

Modalità speciale che significa "consenti solo quando l'app è in primo piano.

ModeIgnored
Obsoleti.

Risultato di #checkOp, #noteOp, #startOp: il chiamante specificato non è autorizzato a eseguire l'operazione specificata e questo tentativo dovrebbe>< avere esito negativo</em> invisibile all'utente (non dovrebbe causare l'arresto anomalo dell'app).

OpstrAddVoicemail

Obbligatorio per accedere alle informazioni correlate allo stato del telefono.

OpstrAnswerPhoneCalls

Rispondere alle chiamate telefoniche in arrivo

OpstrBodySensors

Accesso ai sensori del corpo, ad esempio frequenza cardiaca, ecc.

OpstrCallPhone

Consente a un'applicazione di avviare una telefonata.

OpstrCamera

Necessario per poter accedere al dispositivo fotocamera.

OpstrCoarseLocation

Accesso alle informazioni sulla posizione grossolana.

OpstrFineLocation

Accesso alle informazioni sulla posizione.

OpstrGetUsageStats

Accesso a android.app.usage.UsageStatsManager.

OpstrMockLocation

Inserire posizione fittizia nel sistema.

OpstrMonitorHighPowerLocation

Monitoraggio continuo dei dati sulla posizione con una richiesta di alimentazione relativamente elevata.

OpstrMonitorLocation

Monitoraggio continuo dei dati sulla posizione.

OpstrPictureInPicture

Accesso all'immagine in immagine.

OpstrProcessOutgoingCalls

Accedere alle API per la deviazione delle chiamate in uscita

OpstrReadCalendar

Consente a un'applicazione di leggere i dati del calendario dell'utente.

OpstrReadCallLog

Consente a un'applicazione di leggere il log delle chiamate dell'utente.

OpstrReadCellBroadcasts

Legge i messaggi di trasmissione delle celle ricevuti in precedenza.

OpstrReadContacts

Consente a un'applicazione di leggere i dati dei contatti dell'utente.

OpstrReadExternalStorage

Leggere l'archiviazione esterna.

OpstrReadPhoneNumbers

Le operazioni di app vengono usate per due scopi: Controllo di accesso e rilevamento.

OpstrReadPhoneState

Obbligatorio per accedere alle informazioni correlate allo stato del telefono.

OpstrReadSms

Consente a un'applicazione di leggere messaggi SMS.

OpstrReceiveMms

Consente a un'applicazione di ricevere messaggi MMS.

OpstrReceiveSms

Consente a un'applicazione di ricevere messaggi SMS.

OpstrReceiveWapPush

Consente a un'applicazione di ricevere messaggi push WAP.

OpstrRecordAudio

Necessario per poter accedere al dispositivo microfono.

OpstrSendSms

Consente a un'applicazione di inviare messaggi SMS.

OpstrSystemAlertWindow

Necessario per disegnare sopra altre app.

OpstrUseFingerprint

Usare l'API di impronta digitale.

OpstrUseSip

Accedere alle API per le chiamate SIP tramite VOIP o Wi-Fi

OpstrWriteCalendar

Consente a un'applicazione di scrivere nei dati del calendario dell'utente.

OpstrWriteCallLog

Consente a un'applicazione di scrivere nel registro chiamate dell'utente.

OpstrWriteContacts

Consente a un'applicazione di scrivere nei dati dei contatti dell'utente.

OpstrWriteExternalStorage

Scrivere l'archiviazione esterna.

OpstrWriteSettings

Obbligatorio per scrivere/modificare/aggiornare le impostazioni di sistema.

WatchForegroundChanges
Obsoleti.

Flag per #startWatchingMode(String, String, int, OnOpChangedListener): ottiene anche report se lo stato in primo piano di un oggetto uid cambia.

Proprietà

Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
Handle

Handle per l'istanza di Android sottostante.

(Ereditato da Object)
JniIdentityHashCode

Le operazioni di app vengono usate per due scopi: Controllo di accesso e rilevamento.

(Ereditato da Object)
JniPeerMembers

Le operazioni di app vengono usate per due scopi: Controllo di accesso e rilevamento.

PeerReference

Le operazioni di app vengono usate per due scopi: Controllo di accesso e rilevamento.

(Ereditato da Object)
ThresholdClass

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

ThresholdType

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

Metodi

CheckOp(String, Int32, String)

Questo membro è deprecato.

CheckOpNoThrow(String, Int32, String)

Questo membro è deprecato.

CheckPackage(Int32, String)

Questo membro è deprecato.

Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da Object)
Dispose()

Le operazioni di app vengono usate per due scopi: Controllo di accesso e rilevamento.

(Ereditato da Object)
Dispose(Boolean)

Le operazioni di app vengono usate per due scopi: Controllo di accesso e rilevamento.

(Ereditato da Object)
Equals(Object)

Indica se un altro oggetto è "uguale a" questo.

(Ereditato da Object)
FinishOp(String, Int32, String)

Questo membro è deprecato.

FinishOp(String, Int32, String, String)

Segnalare che un'applicazione non esegue più un'operazione avviata in precedenza con #startOp(String, int, String, String, String).

FinishProxyOp(String, Int32, String, String)

Segnalare che un'applicazione non esegue più un'operazione avviata in precedenza con #startProxyOp(String, int, String, String, String).

GetHashCode()

Restituisce un valore del codice hash per l'oggetto.

(Ereditato da Object)
IsOpActive(String, Int32, String)

Controlla se l'op specificato per un pacchetto è attivo, i.

JavaFinalize()

Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto .

(Ereditato da Object)
NoteOp(String, Int32, String)

Questo membro è deprecato.

NoteOp(String, Int32, String, String, String)

Prendere nota di un'applicazione che esegue un'operazione e verificare se l'applicazione è autorizzata a eseguirla.

NoteOpNoThrow(String, Int32, String)

Questo membro è deprecato.

NoteOpNoThrow(String, Int32, String, String, String)

Come #noteOp(String, int, String, String, String) ma invece di generare un SecurityException oggetto restituisce #MODE_ERRORED.

NoteProxyOp(String, String)

Questo membro è deprecato.

NoteProxyOp(String, String, Int32, String, String)

Prendere nota di un'applicazione che esegue un'operazione per conto di un'altra applicazione durante la gestione di un IPC.

NoteProxyOpNoThrow(String, String)

Questo membro è deprecato.

NoteProxyOpNoThrow(String, String, Int32)

Questo membro è deprecato.

NoteProxyOpNoThrow(String, String, Int32, String, String)

Come #noteProxyOp(String, String, int, String, String) ma invece di generare un SecurityException oggetto restituisce #MODE_ERRORED.

Notify()

Riattiva un singolo thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
NotifyAll()

Riattiva tutti i thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
PermissionToOp(String)

Ottiene il nome app-op associato a una determinata autorizzazione.

SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
SetOnOpNotedCallback(IExecutor, AppOpsManager+OnOpNotedCallback)

Impostare un nuovo OnOpNotedCallbackoggetto .

StartOp(String, Int32, String)

Questo membro è deprecato.

StartOp(String, Int32, String, String, String)

Segnalare che un'applicazione ha avviato l'esecuzione di un'operazione a esecuzione prolungata.

StartOpNoThrow(String, Int32, String)

Questo membro è deprecato.

StartOpNoThrow(String, Int32, String, String, String)

Come #startOp(String, int, String, String, String) ma invece di generare un SecurityException oggetto restituisce #MODE_ERRORED.

StartProxyOp(String, Int32, String, String, String)

Segnalare che un'applicazione ha avviato l'esecuzione di un'operazione a esecuzione prolungata per conto di un'altra applicazione durante la gestione di un IPC.

StartProxyOpNoThrow(String, Int32, String, String, String)

Come #startProxyOp(String, int, String, String, String) ma invece di generare un SecurityException oggetto restituisce #MODE_ERRORED.

StartWatchingActive(String[], IExecutor, AppOpsManager+IOnOpActiveChangedListener)

Le operazioni di app vengono usate per due scopi: Controllo di accesso e rilevamento.

StartWatchingMode(String, String, AppOpsManager+IOnOpChangedListener)

Monitorare le modifiche apportate alla modalità operativa per l'op specificato nel pacchetto dell'app specificato.

StartWatchingMode(String, String, WatchForeground, AppOpsManager+IOnOpChangedListener)

Le operazioni di app vengono usate per due scopi: Controllo di accesso e rilevamento.

StopWatchingActive(AppOpsManager+IOnOpActiveChangedListener)

Interrompere la ricerca delle modifiche apportate allo stato attivo di un'app-op.

StopWatchingMode(AppOpsManager+IOnOpChangedListener)

Arrestare il monitoraggio avviato in precedenza con #startWatchingMode.

ToArray<T>()

Le operazioni di app vengono usate per due scopi: Controllo di accesso e rilevamento.

(Ereditato da Object)
ToString()

Restituisce una rappresentazione di stringa dell'oggetto.

(Ereditato da Object)
UnregisterFromRuntime()

Le operazioni di app vengono usate per due scopi: Controllo di accesso e rilevamento.

(Ereditato da Object)
UnsafeCheckOp(String, Int32, String)

Verificare rapidamente se un'applicazione potrebbe essere in grado di eseguire un'operazione.

UnsafeCheckOpNoThrow(String, Int32, String)

Come #checkOp ma invece di generare un SecurityException oggetto restituisce #MODE_ERRORED.

UnsafeCheckOpRaw(String, Int32, String)

Come #checkOp ma restituisce la <modalità em>raw</em> associata all'op.

UnsafeCheckOpRawNoThrow(String, Int32, String)

Come #unsafeCheckOpNoThrow(String, int, String) ma restituisce la <modalità em>raw</em> associata all'op.

Wait()

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>.

(Ereditato da Object)
Wait(Int64)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)
Wait(Int64, Int32)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo>< una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

IJavaPeerable.Disposed()

Le operazioni di app vengono usate per due scopi: Controllo di accesso e rilevamento.

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

Le operazioni di app vengono usate per due scopi: Controllo di accesso e rilevamento.

(Ereditato da Object)
IJavaPeerable.Finalized()

Le operazioni di app vengono usate per due scopi: Controllo di accesso e rilevamento.

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

Le operazioni di app vengono usate per due scopi: Controllo di accesso e rilevamento.

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Le operazioni di app vengono usate per due scopi: Controllo di accesso e rilevamento.

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Le operazioni di app vengono usate per due scopi: Controllo di accesso e rilevamento.

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Le operazioni di app vengono usate per due scopi: Controllo di accesso e rilevamento.

(Ereditato da Object)

Metodi di estensione

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo di tipo controllato dal runtime Android.

JavaCast<TResult>(IJavaObject)

Le operazioni di app vengono usate per due scopi: Controllo di accesso e rilevamento.

GetJniTypeName(IJavaPeerable)

Le operazioni di app vengono usate per due scopi: Controllo di accesso e rilevamento.

Si applica a