AppOpsManager Clase

Definición

Las operaciones de aplicación se usan para dos propósitos: control de acceso y seguimiento.

[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
Herencia
AppOpsManager
Atributos

Comentarios

Las operaciones de aplicación se usan con dos propósitos: control de acceso y seguimiento.

Las operaciones de la aplicación cubren una amplia variedad de funcionalidades que ayudan con el control de acceso de permisos en tiempo de ejecución y el seguimiento del consumo de batería.

<h2>Control de acceso</h2>

Las operaciones de aplicación se pueden controlar para cada uid o para cada paquete. El que se usa depende del proveedor de API que mantiene esta operación de la aplicación. Para cualquier seguridad o privacidad relacionada con la operación de la aplicación, el proveedor debe controlar la operación de la aplicación para por uid, ya que toda la seguridad y la privacidad se basan en uid en Android.

Para controlar el acceso a app-op se puede establecer en un modo en: <dl><dt><#MODE_DEFAULTdd>Default behavior, might differ from app-op or app-op <dt<>#MODE_ALLOWEDdd>Allow the access <dt#MODE_IGNORED<>dd>Don't allow the access, es decir, don't perform the requested action or return no or placeholder data <dt><#MODE_ERROREDdd>Throw a SecurityException on access. Esto se puede suprimir mediante un ...noThrow método para comprobar el modo </dl>

Los proveedores de API deben comprobar el modo devuelto por #noteOp si permiten el acceso a las operaciones controladas por la operación app-op. #unsafeCheckOp debe usarse para comprobar el modo si no se concede ningún acceso. Por ejemplo, esto se puede usar para mostrar el estado de la operación de la aplicación en la interfaz de usuario o al comprobar el estado antes de llamar #noteOp posteriormente de todos modos.

Si una operación hace referencia a un intervalo de tiempo (por ejemplo, una sesión de grabación de audio), el proveedor de API debe usar #startOp y #finishOp en lugar de #noteOp.

<h3>Permisos en tiempo de ejecución y app-ops</h3>

Cada permiso en tiempo de ejecución definido por la plataforma (además de modificadores en segundo plano) tiene una operación de aplicación asociada que se usa para el seguimiento, pero también para permitir errores silenciosos. Es decir, si se deniega el permiso en tiempo de ejecución, el autor de la llamada obtiene un SecurityException, pero si se concede el permiso y la operación de la aplicación es #MODE_IGNORED entonces, los autores de la llamada obtienen el comportamiento del marcador de posición, por ejemplo, las devoluciones de llamada de ubicación no se producirían.

<h3>Permisos< de operación de la aplicación/h3>

Los permisos de las operaciones de aplicación son permisos definidos por la plataforma que se pueden invalidar. La comprobación de seguridad de los permisos de app-op debe #MODE_DEFAULT default comprobar el estado de concesión de permisos. Si el estado de la operación de la aplicación se establece #MODE_ALLOWED en o #MODE_IGNORED el estado de la operación de la aplicación debe comprobarse en lugar del estado de concesión de permisos.

Esta funcionalidad permite conceder acceso de forma predeterminada a las aplicaciones que cumplen los requisitos de un determinado nivel de permiso. Aun así, el comportamiento se puede invalidar cuando sea necesario.

<h2>Tracking</h2>

Las operaciones de aplicación realizan un seguimiento de muchos eventos importantes, incluidos todos los accesos a las API protegidas por permisos en tiempo de ejecución. Esto se hace mediante el seguimiento de cuándo una operación de la aplicación era #noteOp noted o #startOp started. Los componentes del sistema solo pueden leer los datos de los que se realiza el seguimiento.

<b>Solo #noteOp/#startOp se realiza un seguimiento; #unsafeCheckOp no se realiza el seguimiento. Por lo tanto, es importante llamar #noteOp a o #startOp al proporcionar acceso a operaciones o datos protegidos.</B>

Algunas aplicaciones reenvía el acceso a otras aplicaciones. Por ejemplo, una aplicación podría obtener la ubicación del proveedor de ubicación del sistema y, a continuación, enviar la ubicación a una aplicación tercera. En este caso, la aplicación que pasa los datos debe llamar #noteProxyOp para indicar el proxy de acceso. Esto también puede tener sentido dentro de una sola aplicación si el acceso se reenvía entre dos partes de la etiquetada con etiquetas de atribución diferentes.

Una aplicación puede registrar un OnOpNotedCallback para informarse sobre qué acceso tiene el sistema que realiza el seguimiento. Dado que cada permiso en tiempo de ejecución tiene asociada app-op, esta API es especialmente útil para una aplicación que desea encontrar accesos inesperados a datos privados.

Documentación de Java para android.app.AppOpsManager.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código y se usan según los términos descritos en la creative Commons 2.5.

Constructores

AppOpsManager(IntPtr, JniHandleOwnership)

Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución.

Campos

ModeAllowed
Obsoletos.

Resultado de #checkOp, #noteOp, #startOp: el llamador dado puede realizar la operación especificada.

ModeDefault
Obsoletos.

Resultado de #checkOp, #noteOp, #startOp: el llamador dado debe usar su comprobación de seguridad predeterminada.

ModeErrored
Obsoletos.

Resultado de #checkOpNoThrow, , #startOpNoThrow#noteOpNoThrow: el autor de la llamada dado no puede realizar la operación dada y este intento debe provocar que tenga un error irrecuperable, normalmente un SecurityException.

ModeForeground
Obsoletos.

Modo especial que significa "permitir solo cuando la aplicación está en primer plano.

ModeIgnored
Obsoletos.

Resultado de #checkOp, #noteOp, #startOp: el autor de la llamada dado no puede realizar la operación especificada y este intento debe <producir>un error< o em> en modo silencioso (no debería provocar que la aplicación se bloquee).

OpstrAddVoicemail

Necesario para acceder a la información relacionada con el estado del teléfono.

OpstrAnswerPhoneCalls

Responder a las llamadas telefónicas entrantes

OpstrBodySensors

Acceso a sensores corporales como la frecuencia cardíaca, etc.

OpstrCallPhone

Permite que una aplicación inicie una llamada telefónica.

OpstrCamera

Necesario para poder acceder al dispositivo de cámara.

OpstrCoarseLocation

Acceso a información general de ubicación.

OpstrFineLocation

Acceso a información de ubicación fina.

OpstrGetUsageStats

Acceso a android.app.usage.UsageStatsManager.

OpstrMockLocation

Inserte la ubicación ficticia en el sistema.

OpstrMonitorHighPowerLocation

Supervisar continuamente los datos de ubicación con una solicitud de energía relativamente alta.

OpstrMonitorLocation

Supervisar continuamente los datos de ubicación.

OpstrPictureInPicture

Acceso a la imagen en imagen.

OpstrProcessOutgoingCalls

Acceso a las API para desviar las llamadas salientes

OpstrReadCalendar

Permite que una aplicación lea los datos del calendario del usuario.

OpstrReadCallLog

Permite que una aplicación lea el registro de llamadas del usuario.

OpstrReadCellBroadcasts

Lee los mensajes de difusión de celda recibidos anteriormente.

OpstrReadContacts

Permite que una aplicación lea los datos de contactos del usuario.

OpstrReadExternalStorage

Lee el almacenamiento externo.

OpstrReadPhoneNumbers

Las operaciones de aplicación se usan para dos propósitos: control de acceso y seguimiento.

OpstrReadPhoneState

Necesario para acceder a la información relacionada con el estado del teléfono.

OpstrReadSms

Permite que una aplicación lea mensajes SMS.

OpstrReceiveMms

Permite que una aplicación reciba mensajes MMS.

OpstrReceiveSms

Permite que una aplicación reciba mensajes SMS.

OpstrReceiveWapPush

Permite que una aplicación reciba mensajes de inserción wap.

OpstrRecordAudio

Necesario para poder acceder al dispositivo de micrófono.

OpstrSendSms

Permite que una aplicación envíe mensajes SMS.

OpstrSystemAlertWindow

Necesario para dibujar sobre otras aplicaciones.

OpstrUseFingerprint

Use la API de huellas digitales.

OpstrUseSip

Acceso a las API para llamadas SIP a través de VOIP o WiFi

OpstrWriteCalendar

Permite que una aplicación escriba en los datos del calendario del usuario.

OpstrWriteCallLog

Permite que una aplicación escriba en el registro de llamadas del usuario.

OpstrWriteContacts

Permite que una aplicación escriba en los datos de contactos del usuario.

OpstrWriteExternalStorage

Escribir almacenamiento externo.

OpstrWriteSettings

Se requiere para escribir, modificar o actualizar la configuración del sistema.

WatchForegroundChanges
Obsoletos.

Marca para #startWatchingMode(String, String, int, OnOpChangedListener): obtenga también informes si cambia el estado en primer plano de un uid de una operación.

Propiedades

Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
JniIdentityHashCode

Las operaciones de aplicación se usan para dos propósitos: control de acceso y seguimiento.

(Heredado de Object)
JniPeerMembers

Las operaciones de aplicación se usan para dos propósitos: control de acceso y seguimiento.

PeerReference

Las operaciones de aplicación se usan para dos propósitos: control de acceso y seguimiento.

(Heredado de Object)
ThresholdClass

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

ThresholdType

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

Métodos

CheckOp(String, Int32, String)

Este miembro está en desuso.

CheckOpNoThrow(String, Int32, String)

Este miembro está en desuso.

CheckPackage(Int32, String)

Este miembro está en desuso.

Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Dispose()

Las operaciones de aplicación se usan para dos propósitos: control de acceso y seguimiento.

(Heredado de Object)
Dispose(Boolean)

Las operaciones de aplicación se usan para dos propósitos: control de acceso y seguimiento.

(Heredado de Object)
Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
FinishOp(String, Int32, String)

Este miembro está en desuso.

FinishOp(String, Int32, String, String)

Informe de que una aplicación ya no está realizando una operación que se había iniciado anteriormente con #startOp(String, int, String, String, String).

FinishProxyOp(String, Int32, String, String)

Informe de que una aplicación ya no está realizando una operación que se había iniciado anteriormente con #startProxyOp(String, int, String, String, String).

GetHashCode()

Devuelve un valor de código hash del objeto.

(Heredado de Object)
IsOpActive(String, Int32, String)

Comprueba si la operación especificada para un paquete está activa, i.

JavaFinalize()

Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto .

(Heredado de Object)
NoteOp(String, Int32, String)

Este miembro está en desuso.

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

Anote una aplicación que realiza una operación y compruebe si la aplicación puede realizarla.

NoteOpNoThrow(String, Int32, String)

Este miembro está en desuso.

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

Al igual #noteOp(String, int, String, String, String) que pero en lugar de producir , SecurityException devuelve #MODE_ERRORED.

NoteProxyOp(String, String)

Este miembro está en desuso.

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

Tome nota de una aplicación que realiza una operación en nombre de otra aplicación al controlar un IPC.

NoteProxyOpNoThrow(String, String)

Este miembro está en desuso.

NoteProxyOpNoThrow(String, String, Int32)

Este miembro está en desuso.

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

Al igual #noteProxyOp(String, String, int, String, String) que pero en lugar de producir , SecurityException devuelve #MODE_ERRORED.

Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
PermissionToOp(String)

Obtiene el nombre de la operación de la aplicación asociado a un permiso determinado.

SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
SetOnOpNotedCallback(IExecutor, AppOpsManager+OnOpNotedCallback)

Establezca un nuevo OnOpNotedCallback.

StartOp(String, Int32, String)

Este miembro está en desuso.

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

Informe de que una aplicación ha empezado a ejecutar una operación de ejecución prolongada.

StartOpNoThrow(String, Int32, String)

Este miembro está en desuso.

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

Al igual #startOp(String, int, String, String, String) que pero en lugar de producir , SecurityException devuelve #MODE_ERRORED.

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

Informe de que una aplicación ha empezado a ejecutar una operación de larga duración en nombre de otra aplicación al controlar un IPC.

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

Al igual #startProxyOp(String, int, String, String, String) que pero en lugar de producir , SecurityException devuelve #MODE_ERRORED.

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

Las operaciones de aplicación se usan para dos propósitos: control de acceso y seguimiento.

StartWatchingMode(String, String, AppOpsManager+IOnOpChangedListener)

Supervise los cambios en el modo de funcionamiento de la operación especificada en el paquete de aplicación especificado.

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

Las operaciones de aplicación se usan para dos propósitos: control de acceso y seguimiento.

StopWatchingActive(AppOpsManager+IOnOpActiveChangedListener)

Deje de observar los cambios en el estado activo de una operación de la aplicación.

StopWatchingMode(AppOpsManager+IOnOpChangedListener)

Detenga la supervisión que se inició anteriormente con #startWatchingMode.

ToArray<T>()

Las operaciones de aplicación se usan para dos propósitos: control de acceso y seguimiento.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto.

(Heredado de Object)
UnregisterFromRuntime()

Las operaciones de aplicación se usan para dos propósitos: control de acceso y seguimiento.

(Heredado de Object)
UnsafeCheckOp(String, Int32, String)

Realice una comprobación rápida de si una aplicación podría realizar una operación.

UnsafeCheckOpNoThrow(String, Int32, String)

Al igual #checkOp que pero en lugar de producir , SecurityException devuelve #MODE_ERRORED.

UnsafeCheckOpRaw(String, Int32, String)

Al igual #checkOp que pero devuelve el <modo em>raw</em> asociado a la operación.

UnsafeCheckOpRawNoThrow(String, Int32, String)

Al igual #unsafeCheckOpNoThrow(String, int, String) que pero devuelve el <modo em>raw</em> asociado a la operación.

Wait()

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em> o <em>interrumpido</em>.<><

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)

Implementaciones de interfaz explícitas

IJavaPeerable.Disposed()

Las operaciones de aplicación se usan para dos propósitos: control de acceso y seguimiento.

(Heredado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Las operaciones de aplicación se usan para dos propósitos: control de acceso y seguimiento.

(Heredado de Object)
IJavaPeerable.Finalized()

Las operaciones de aplicación se usan para dos propósitos: control de acceso y seguimiento.

(Heredado de Object)
IJavaPeerable.JniManagedPeerState

Las operaciones de aplicación se usan para dos propósitos: control de acceso y seguimiento.

(Heredado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Las operaciones de aplicación se usan para dos propósitos: control de acceso y seguimiento.

(Heredado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Las operaciones de aplicación se usan para dos propósitos: control de acceso y seguimiento.

(Heredado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Las operaciones de aplicación se usan para dos propósitos: control de acceso y seguimiento.

(Heredado de Object)

Métodos de extensión

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Las operaciones de aplicación se usan para dos propósitos: control de acceso y seguimiento.

GetJniTypeName(IJavaPeerable)

Las operaciones de aplicación se usan para dos propósitos: control de acceso y seguimiento.

Se aplica a