AppOpsManager Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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_DEFAULT
dd>Default-Verhalten, kann sich von app-op- oder app-op <dt><#MODE_ALLOWED
dd>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 |
ModeDefault |
Veraltet.
Ergebnis von |
ModeErrored |
Veraltet.
Ergebnis von |
ModeForeground |
Veraltet.
Der spezielle Modus bedeutet "nur zulassen, wenn sich die App im Vordergrund befindet. |
ModeIgnored |
Veraltet.
Ergebnis von |
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 |
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 |
Eigenschaften
Class |
Gibt die Laufzeitklasse dieses Werts |
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 |
FinishProxyOp(String, Int32, String, String) |
Melden Sie, dass eine Anwendung keinen Vorgang mehr ausführt, der zuvor mit |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
UnsafeCheckOpRaw(String, Int32, String) |
"Gefällt |
UnsafeCheckOpRawNoThrow(String, Int32, String) |
"Gefällt |
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. |