AppOpsManager Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
- 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_ALLOWED
dd>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 SecurityException
oggetto , 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 |
ModeDefault |
Obsoleti.
Risultato di |
ModeErrored |
Obsoleti.
Risultato di |
ModeForeground |
Obsoleti.
Modalità speciale che significa "consenti solo quando l'app è in primo piano. |
ModeIgnored |
Obsoleti.
Risultato di |
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 |
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 |
Proprietà
Class |
Restituisce la classe di runtime di questo |
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 |
FinishProxyOp(String, Int32, String, String) |
Segnalare che un'applicazione non esegue più un'operazione avviata in precedenza con |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
UnsafeCheckOpRaw(String, Int32, String) |
Come |
UnsafeCheckOpRawNoThrow(String, Int32, String) |
Come |
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. |