AppOpsManager Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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_DEFAULT
dd>Default behavior, might differ from app-op or app-op <dt<>#MODE_ALLOWED
dd>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_ERRORED
dd>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 |
ModeDefault |
Obsoletos.
Resultado de |
ModeErrored |
Obsoletos.
Resultado de |
ModeForeground |
Obsoletos.
Modo especial que significa "permitir solo cuando la aplicación está en primer plano. |
ModeIgnored |
Obsoletos.
Resultado de |
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 |
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 |
Propiedades
Class |
Devuelve la clase en tiempo de ejecución de este |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
UnsafeCheckOpRaw(String, Int32, String) |
Al igual |
UnsafeCheckOpRawNoThrow(String, Int32, String) |
Al igual |
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. |