Freigeben über


AppOpsManager Klasse

Definition

App-Ops werden für zwei Zwecke verwendet: Zugriffssteuerung und -verfolgung.

[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
Vererbung
AppOpsManager
Attribute

Hinweise

App-Ops werden für zwei Zwecke verwendet: Zugriffssteuerung und -verfolgung.

App-Ops decken eine Vielzahl von Funktionen ab, von der Unterstützung bei der Zugriffssteuerung und Nachverfolgung von Laufzeitberechtigungen bis hin zur Nachverfolgung des Akkuverbrauchs.

<h2>Zugriffssteuerung</h2>

App-Ops können entweder für jede UID oder für jedes Paket gesteuert werden. Welches verwendet wird, hängt vom API-Anbieter ab, der diese App-Op verwaltet. Für alle sicherheits- oder datenschutzbezogenen App-Vorgänge muss der Anbieter den App-Op pro Uid steuern, da alle Sicherheit und Datenschutz auf der UID in Android basieren.

Um den Zugriff auf den App-Op zu steuern, kann auf einen Modus festgelegt werden auf: <dl<>dt<>#MODE_DEFAULTdd>Default-Verhalten, kann sich von app-op- oder app-op <dt><#MODE_ALLOWEDdd>Allow the access <dt#MODE_IGNORED><dd>Nicht zulassen, d.h. führen Sie die angeforderte Aktion nicht aus, oder geben Sie keine oder Platzhalterdaten#MODE_ERRORED><< zurück, dd>Auslösen eines SecurityException Zugriffs. Dies kann mithilfe einer ...noThrow Methode zum Überprüfen des Modus </dl unterdrückt werden.>

API-Anbieter müssen den vom App-Op zurückgegebenen #noteOp Modus überprüfen, wenn sie den Zugriff auf Vorgänge zulassen, die von der App-Op bereitgestellt werden. #unsafeCheckOp sollte verwendet werden, um den Modus zu überprüfen, wenn kein Zugriff gewährt wird. Dies kann z. B. zum Anzeigen des App-Op-Zustands in der Benutzeroberfläche oder beim Überprüfen des Zustands verwendet werden, bevor sie später trotzdem aufgerufen #noteOp werden.

Wenn sich ein Vorgang auf einen Zeitraum bezieht (z. B. eine Audioaufzeichnungssitzung), sollte #startOp der API-Anbieter anstelle #finishOp von #noteOp.

<h3-Laufzeitberechtigungen>und App-Ops</h3>

Jede plattformdefinierte Laufzeitberechtigung (neben Hintergrundmodifizierern) verfügt über einen zugeordneten App-Vorgang, der zur Nachverfolgung verwendet wird, aber auch zum Zulassen von automatischen Fehlern. Wenn also die Laufzeitberechtigung verweigert wird, erhält der Aufrufer eine SecurityException, aber wenn die Berechtigung erteilt wird #MODE_IGNORED und die App-Op erfolgt, erhält die Anrufer Platzhalterverhalten, z. B. Positionsrückrufe.

<h3>App-Op-Berechtigungen</h3>

App-Ops-Berechtigungen sind plattformdefinierte Berechtigungen, die überschrieben werden können. Die Sicherheitsüberprüfung für App-Op-Berechtigungen sollte den #MODE_DEFAULT default Berechtigungserteilungsstatus überprüfen. Wenn der App-Op-Zustand auf #MODE_ALLOWED oder der App-Op-Zustand festgelegt ist, #MODE_IGNORED sollte anstelle des Berechtigungserteilungsstatus überprüft werden.

Diese Funktionalität ermöglicht standardmäßig den Zugriff auf Apps, die die Anforderungen für eine bestimmte Berechtigungsstufe erfüllen. Dennoch kann das Verhalten bei Bedarf außer Kraft gesetzt werden.

<h2>Tracking</h2>

App-Ops verfolgen viele wichtige Ereignisse, einschließlich aller Zugriffe auf durch Laufzeitberechtigungen geschützte APIs. Dies erfolgt durch Nachverfolgen, wann eine App-Op war #noteOp noted oder #startOp started. Die nachverfolgten Daten können nur von Systemkomponenten gelesen werden.

<b>Nur #noteOp/#startOp nachverfolgt; #unsafeCheckOp wird nicht nachverfolgt. Daher ist es wichtig, irgendwann aufzurufen #noteOp oder #startOp zugriff auf geschützte Vorgänge oder Daten bereitzustellen.</b>

Einige Apps leiten den Zugriff auf andere Apps weiter. Beispielsweise kann eine App den Standort vom Standortanbieter des Systems abrufen und den Standort dann weiter an eine dritte App senden. In diesem Fall muss die App, die die Daten übergibt, aufrufen #noteProxyOp , um die Zugriffsproxying zu signalisieren. Dies kann auch innerhalb einer einzelnen App sinnvoll sein, wenn der Zugriff zwischen zwei Teilen des Markierten mit unterschiedlichen Attributionstags weitergeleitet wird.

Eine App kann sich registrieren OnOpNotedCallback , um darüber zu informieren, welche Zugriffe das System dafür verfolgt. Da jede Laufzeitberechtigung über eine zugeordnete App verfügt, ist diese API besonders nützlich für eine App, die unerwartete private Datenzugriffe finden möchte.

Java-Dokumentation für android.app.AppOpsManager.

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Konstruktoren

AppOpsManager(IntPtr, JniHandleOwnership)

Ein Konstruktor, der beim Erstellen verwalteter Darstellungen von JNI-Objekten verwendet wird; wird von der Laufzeit aufgerufen.

Felder

ModeAllowed
Veraltet.

Ergebnis von #checkOp, , #noteOp: #startOpder angegebene Aufrufer darf den angegebenen Vorgang ausführen.

ModeDefault
Veraltet.

Ergebnis von #checkOp, , #noteOp: #startOpder angegebene Aufrufer sollte seine Standardsicherheitsprüfung verwenden.

ModeErrored
Veraltet.

Ergebnis von #checkOpNoThrow, , #noteOpNoThrow: #startOpNoThrowDer angegebene Aufrufer darf den angegebenen Vorgang nicht ausführen, und dieser Versuch sollte dazu führen, dass er einen schwerwiegenden Fehler hat, in der Regel ein SecurityException.

ModeForeground
Veraltet.

Der spezielle Modus bedeutet "nur zulassen, wenn sich die App im Vordergrund befindet.

ModeIgnored
Veraltet.

Ergebnis von #checkOp, , #noteOp: #startOpDer angegebene Aufrufer darf den angegebenen Vorgang nicht ausführen, und dieser Versuch sollte <>automatisch fehlschlagen</em> (es sollte nicht dazu führen, dass die App abstürzt).

OpstrAddVoicemail

Erforderlich für den Zugriff auf informationen im Zusammenhang mit dem Telefonstatus.

OpstrAnswerPhoneCalls

Annehmen eingehender Telefonanrufe

OpstrBodySensors

Zugriff auf Körpersensoren wie Herzfrequenz usw.

OpstrCallPhone

Ermöglicht einer Anwendung, einen Telefonanruf zu initiieren.

OpstrCamera

Erforderlich, um auf das Kameragerät zugreifen zu können.

OpstrCoarseLocation

Zugriff auf grobe Standortinformationen.

OpstrFineLocation

Zugriff auf feine Standortinformationen.

OpstrGetUsageStats

Zugriff auf android.app.usage.UsageStatsManager.

OpstrMockLocation

Einfügen eines simulierten Speicherorts in das System.

OpstrMonitorHighPowerLocation

Kontinuierliche Überwachung von Standortdaten mit einer relativ hohen Leistungsanforderung.

OpstrMonitorLocation

Kontinuierliche Überwachung von Standortdaten.

OpstrPictureInPicture

Zugriff auf Bild-in-Bild.

OpstrProcessOutgoingCalls

Zugriffs-APIs für die Umleitung ausgehender Anrufe

OpstrReadCalendar

Ermöglicht einer Anwendung das Lesen der Kalenderdaten des Benutzers.

OpstrReadCallLog

Ermöglicht einer Anwendung das Lesen des Anrufprotokolls des Benutzers.

OpstrReadCellBroadcasts

Lesen sie zuvor empfangene Zellübertragungsnachrichten.

OpstrReadContacts

Ermöglicht einer Anwendung, die Kontaktdaten des Benutzers zu lesen.

OpstrReadExternalStorage

Externer Speicher lesen.

OpstrReadPhoneNumbers

App-Ops werden für zwei Zwecke verwendet: Zugriffssteuerung und -verfolgung.

OpstrReadPhoneState

Erforderlich für den Zugriff auf informationen im Zusammenhang mit dem Telefonstatus.

OpstrReadSms

Ermöglicht einer Anwendung das Lesen von SMS-Nachrichten.

OpstrReceiveMms

Ermöglicht einer Anwendung, MMS-Nachrichten zu empfangen.

OpstrReceiveSms

Ermöglicht einer Anwendung, SMS-Nachrichten zu empfangen.

OpstrReceiveWapPush

Ermöglicht einer Anwendung, WAP-Pushnachrichten zu empfangen.

OpstrRecordAudio

Erforderlich, um auf das Mikrofongerät zugreifen zu können.

OpstrSendSms

Ermöglicht einer Anwendung das Senden von SMS-Nachrichten.

OpstrSystemAlertWindow

Erforderlich, um über andere Apps zu zeichnen.

OpstrUseFingerprint

Verwenden Sie die Fingerabdruck-API.

OpstrUseSip

Zugriffs-APIs für SIP-Anrufe über VOIP oder WLAN

OpstrWriteCalendar

Ermöglicht einer Anwendung das Schreiben in die Kalenderdaten des Benutzers.

OpstrWriteCallLog

Ermöglicht einer Anwendung das Schreiben in das Anrufprotokoll des Benutzers.

OpstrWriteContacts

Ermöglicht einer Anwendung das Schreiben in die Kontaktdaten des Benutzers.

OpstrWriteExternalStorage

Schreiben Sie externen Speicher.

OpstrWriteSettings

Erforderlich zum Schreiben/Ändern/Aktualisieren von Systemeinstellungen.

WatchForegroundChanges
Veraltet.

Flag für #startWatchingMode(String, String, int, OnOpChangedListener): Ruft auch Berichte ab, wenn sich der Vordergrundzustand der UID eines Op ändert.

Eigenschaften

Class

Gibt die Laufzeitklasse dieses Werts Objectzurück.

(Geerbt von Object)
Handle

Das Handle für die zugrunde liegende Android-Instanz.

(Geerbt von Object)
JniIdentityHashCode

App-Ops werden für zwei Zwecke verwendet: Zugriffssteuerung und -verfolgung.

(Geerbt von Object)
JniPeerMembers

App-Ops werden für zwei Zwecke verwendet: Zugriffssteuerung und -verfolgung.

PeerReference

App-Ops werden für zwei Zwecke verwendet: Zugriffssteuerung und -verfolgung.

(Geerbt von Object)
ThresholdClass

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

ThresholdType

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

Methoden

CheckOp(String, Int32, String)

Dieses Mitglied ist veraltet.

CheckOpNoThrow(String, Int32, String)

Dieses Mitglied ist veraltet.

CheckPackage(Int32, String)

Dieses Mitglied ist veraltet.

Clone()

Erstellt und gibt eine Kopie dieses Objekts zurück.

(Geerbt von Object)
Dispose()

App-Ops werden für zwei Zwecke verwendet: Zugriffssteuerung und -verfolgung.

(Geerbt von Object)
Dispose(Boolean)

App-Ops werden für zwei Zwecke verwendet: Zugriffssteuerung und -verfolgung.

(Geerbt von Object)
Equals(Object)

Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist.

(Geerbt von Object)
FinishOp(String, Int32, String)

Dieses Mitglied ist veraltet.

FinishOp(String, Int32, String, String)

Melden Sie, dass eine Anwendung keinen Vorgang mehr ausführt, der zuvor mit #startOp(String, int, String, String, String)gestartet wurde.

FinishProxyOp(String, Int32, String, String)

Melden Sie, dass eine Anwendung keinen Vorgang mehr ausführt, der zuvor mit #startProxyOp(String, int, String, String, String)gestartet wurde.

GetHashCode()

Gibt einen Hashcodewert für das Objekt zurück.

(Geerbt von Object)
IsOpActive(String, Int32, String)

Überprüft, ob der angegebene Vorgang für ein Paket aktiv ist, i.

JavaFinalize()

Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection bestimmt, dass keine weiteren Verweise auf das Objekt vorhanden sind.

(Geerbt von Object)
NoteOp(String, Int32, String)

Dieses Mitglied ist veraltet.

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

Notieren Sie sich eine Anwendung, die einen Vorgang ausführt, und überprüfen Sie, ob die Anwendung sie ausführen darf.

NoteOpNoThrow(String, Int32, String)

Dieses Mitglied ist veraltet.

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

Wie #noteOp(String, int, String, String, String) , aber anstatt ein SecurityException es zurückzuwerfen #MODE_ERRORED.

NoteProxyOp(String, String)

Dieses Mitglied ist veraltet.

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

Notieren Sie sich eine Anwendung, die einen Vorgang im Auftrag einer anderen Anwendung ausführt, wenn Sie eine IPC behandeln.

NoteProxyOpNoThrow(String, String)

Dieses Mitglied ist veraltet.

NoteProxyOpNoThrow(String, String, Int32)

Dieses Mitglied ist veraltet.

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

Wie #noteProxyOp(String, String, int, String, String) , aber anstatt ein SecurityException es zurückzuwerfen #MODE_ERRORED.

Notify()

Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet.

(Geerbt von Object)
NotifyAll()

Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten.

(Geerbt von Object)
PermissionToOp(String)

Ruft den App-Op-Namen ab, der einer bestimmten Berechtigung zugeordnet ist.

SetHandle(IntPtr, JniHandleOwnership)

Legt die Handle-Eigenschaft fest.

(Geerbt von Object)
SetOnOpNotedCallback(IExecutor, AppOpsManager+OnOpNotedCallback)

Festlegen eines neuen OnOpNotedCallback.

StartOp(String, Int32, String)

Dieses Mitglied ist veraltet.

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

Melden Sie, dass eine Anwendung mit dem Ausführen eines lange ausgeführten Vorgangs begonnen hat.

StartOpNoThrow(String, Int32, String)

Dieses Mitglied ist veraltet.

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

Wie #startOp(String, int, String, String, String) , aber anstatt ein SecurityException es zurückzuwerfen #MODE_ERRORED.

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

Melden Sie, dass eine Anwendung beim Behandeln eines IPC einen lang ausgeführten Vorgang im Auftrag einer anderen Anwendung ausgeführt hat.

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

Wie #startProxyOp(String, int, String, String, String) , aber anstatt ein SecurityException es zurückzuwerfen #MODE_ERRORED.

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

App-Ops werden für zwei Zwecke verwendet: Zugriffssteuerung und -verfolgung.

StartWatchingMode(String, String, AppOpsManager+IOnOpChangedListener)

Überwachen Sie die Änderungen des Betriebsmodus für den angegebenen Vorgang im angegebenen App-Paket.

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

App-Ops werden für zwei Zwecke verwendet: Zugriffssteuerung und -verfolgung.

StopWatchingActive(AppOpsManager+IOnOpActiveChangedListener)

Beenden Sie die Überwachung auf Änderungen am aktiven Zustand einer App-Op.

StopWatchingMode(AppOpsManager+IOnOpChangedListener)

Beenden Sie die Überwachung, die zuvor mit #startWatchingModegestartet wurde.

ToArray<T>()

App-Ops werden für zwei Zwecke verwendet: Zugriffssteuerung und -verfolgung.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolgendarstellung des Objekts zurück.

(Geerbt von Object)
UnregisterFromRuntime()

App-Ops werden für zwei Zwecke verwendet: Zugriffssteuerung und -verfolgung.

(Geerbt von Object)
UnsafeCheckOp(String, Int32, String)

Überprüfen Sie schnell, ob eine Anwendung einen Vorgang ausführen kann.

UnsafeCheckOpNoThrow(String, Int32, String)

Wie #checkOp , aber anstatt ein SecurityException es zurückzuwerfen #MODE_ERRORED.

UnsafeCheckOpRaw(String, Int32, String)

"Gefällt #checkOp mir", gibt jedoch den <unformatierten></em-Modus> zurück, der dem Op zugeordnet ist.

UnsafeCheckOpRawNoThrow(String, Int32, String)

"Gefällt #unsafeCheckOpNoThrow(String, int, String) mir", gibt jedoch den <unformatierten></em-Modus> zurück, der dem Op zugeordnet ist.

Wait()

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em> oder <em>unterbrochen</em>.<><

(Geerbt von Object)
Wait(Int64)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
Wait(Int64, Int32)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

IJavaPeerable.Disposed()

App-Ops werden für zwei Zwecke verwendet: Zugriffssteuerung und -verfolgung.

(Geerbt von Object)
IJavaPeerable.DisposeUnlessReferenced()

App-Ops werden für zwei Zwecke verwendet: Zugriffssteuerung und -verfolgung.

(Geerbt von Object)
IJavaPeerable.Finalized()

App-Ops werden für zwei Zwecke verwendet: Zugriffssteuerung und -verfolgung.

(Geerbt von Object)
IJavaPeerable.JniManagedPeerState

App-Ops werden für zwei Zwecke verwendet: Zugriffssteuerung und -verfolgung.

(Geerbt von Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

App-Ops werden für zwei Zwecke verwendet: Zugriffssteuerung und -verfolgung.

(Geerbt von Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

App-Ops werden für zwei Zwecke verwendet: Zugriffssteuerung und -verfolgung.

(Geerbt von Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

App-Ops werden für zwei Zwecke verwendet: Zugriffssteuerung und -verfolgung.

(Geerbt von Object)

Erweiterungsmethoden

JavaCast<TResult>(IJavaObject)

Führt eine android-laufzeitgecheckte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

App-Ops werden für zwei Zwecke verwendet: Zugriffssteuerung und -verfolgung.

GetJniTypeName(IJavaPeerable)

App-Ops werden für zwei Zwecke verwendet: Zugriffssteuerung und -verfolgung.

Gilt für: