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 la aplicación se usan con 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 la aplicación se usan con dos propósitos: control de acceso y seguimiento.
Las operaciones de la aplicación abarcan una amplia variedad de funcionalidades que ayudan con el control de acceso de permisos en tiempo de ejecución y el seguimiento del 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 operación de aplicación relacionada con la seguridad o privacidad, 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>Comportamiento predeterminado, puede diferir de app-op o 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 SecurityException a 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 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 (junto a los 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 llamadores obtienen el comportamiento del marcador de posición, por ejemplo, las devoluciones de llamada de ubicación no se producirían.
<h3>Permisos< de app-op/h3>
Los permisos de 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 está establecido #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 permisos. 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 realiza mediante el seguimiento cuando una operación de la aplicación era #noteOp noted o #startOp started. Los componentes del sistema solo pueden leer los datos con 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 más a una aplicación 3. 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 obtener información sobre qué acceso tiene el sistema para realizar el seguimiento. Dado que cada permiso en tiempo de ejecución tiene asociada una operación de aplicación, esta API es especialmente útil para una aplicación que quiere 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 abierto de Android y se usan según los términos descritos en la licencia de atribución de 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 la información de ubicación general. |
| OpstrFineLocation |
Acceso a información de ubicación adecuada. |
| 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 |
Api de acceso para desviar llamadas salientes |
| OpstrReadCalendar |
Permite a una aplicación leer 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 |
Leer almacenamiento externo. |
| OpstrReadPhoneNumbers |
Las operaciones de la aplicación se usan con 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 a una aplicación leer 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 |
Necesario 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 la aplicación se usan con dos propósitos: control de acceso y seguimiento. (Heredado de Object) |
| JniPeerMembers |
Las operaciones de la aplicación se usan con dos propósitos: control de acceso y seguimiento. |
| PeerReference |
Las operaciones de la aplicación se usan con 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 la aplicación se usan con dos propósitos: control de acceso y seguimiento. (Heredado de Object) |
| Dispose(Boolean) |
Las operaciones de la aplicación se usan con 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) |
Tome nota de que una aplicación 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) |
Como |
| NoteProxyOp(String, String) |
Este miembro está en desuso. |
| NoteProxyOp(String, String, Int32, String, String) |
Tome nota de que una aplicación 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) |
Como |
| 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 app-op 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) |
Como |
| 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) |
Como |
| StartWatchingActive(String[], IExecutor, AppOpsManager+IOnOpActiveChangedListener) |
Las operaciones de la aplicación se usan con 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 determinado. |
| StartWatchingMode(String, String, WatchForeground, AppOpsManager+IOnOpChangedListener) |
Las operaciones de la aplicación se usan con 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 la aplicación se usan con 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 la aplicación se usan con 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) |
Como |
| UnsafeCheckOpRaw(String, Int32, String) |
Como |
| UnsafeCheckOpRawNoThrow(String, Int32, String) |
Como |
| Wait() |
Hace que el subproceso actual espere hasta que se despierta, 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 la aplicación se usan con dos propósitos: control de acceso y seguimiento. (Heredado de Object) |
| IJavaPeerable.DisposeUnlessReferenced() |
Las operaciones de la aplicación se usan con dos propósitos: control de acceso y seguimiento. (Heredado de Object) |
| IJavaPeerable.Finalized() |
Las operaciones de la aplicación se usan con dos propósitos: control de acceso y seguimiento. (Heredado de Object) |
| IJavaPeerable.JniManagedPeerState |
Las operaciones de la aplicación se usan con dos propósitos: control de acceso y seguimiento. (Heredado de Object) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Las operaciones de la aplicación se usan con dos propósitos: control de acceso y seguimiento. (Heredado de Object) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Las operaciones de la aplicación se usan con dos propósitos: control de acceso y seguimiento. (Heredado de Object) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Las operaciones de la aplicación se usan con 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 la aplicación se usan con dos propósitos: control de acceso y seguimiento. |
| GetJniTypeName(IJavaPeerable) |
Las operaciones de la aplicación se usan con dos propósitos: control de acceso y seguimiento. |