AttributionSource 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í.
Esta clase representa un origen al que se debe atribuir el acceso a los datos protegidos por permisos.
[Android.Runtime.Register("android/content/AttributionSource", ApiSince=31, DoNotGenerateAcw=true)]
public sealed class AttributionSource : Java.Lang.Object, Android.OS.IParcelable, IDisposable
[<Android.Runtime.Register("android/content/AttributionSource", ApiSince=31, DoNotGenerateAcw=true)>]
type AttributionSource = class
inherit Object
interface IParcelable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- Herencia
- Atributos
- Implementaciones
Comentarios
Esta clase representa un origen al que se debe atribuir el acceso a los datos protegidos por permisos. Los orígenes de atribución se pueden encadenar para representar casos en los que los datos protegidos fluyen a través de varias aplicaciones. Por ejemplo, la aplicación A puede pedir a la aplicación B contactos y, a su vez, la aplicación B puede pedir a la aplicación C contactos. En este caso, la cadena de atribución sería A -> B -> C y el flujo de datos sería C -> B -> A. Hay dos ventajas principales de usar el mecanismo de origen de atribución: evitar realizar comprobaciones explícitas de permisos en nombre de la aplicación que realiza la llamada si está accediendo a datos privados en su nombre para devolverlos; evite el doble acceso a los datos, lo que sucede cuando comprueba los permisos de la aplicación que realiza la llamada y al acceder a los datos subyacentes a estos permisos (para los permisos en tiempo de ejecución). Además, si no se culpa explícitamente al autor de la llamada, el acceso a los datos se contaría hacia la aplicación frente a la aplicación anterior en la que el suyo era solo un proxy.
Cada Context tiene un origen de atribución y se puede obtener a través Context#getAttributionSource() de representarse, que es una cadena de uno. Puede atribuir el trabajo a otra aplicación o, más precisamente, a una cadena de aplicaciones, a través de la cual fluyen los datos a los que accedería, a través Context#createContext( ContextParams) de , además de especificar un origen de atribución para la siguiente aplicación para recibir los datos protegidos a los que accede a través AttributionSource.Builder#setNext( AttributionSource)de . La creación de esta cadena de atribución garantiza que el origen de datos compruebe si cada aplicación de la cadena de atribución tiene permiso para acceder a los datos antes de liberarlos. El origen de datos también registrará adecuadamente que las aplicaciones accedieron a estos datos en la secuencia si los datos están detrás de un permiso confidencial (por ejemplo, peligroso). De nuevo, esto resulta útil si accede a los datos en nombre de otra aplicación, por ejemplo, un reconocedor de voz mediante el micrófono para que pueda proporcionar reconocimiento a una aplicación que realiza una llamada.
Puede crear una cadena de atribución de usted y cualquier otra aplicación sin ninguna comprobación, ya que esto ya está disponible a través de las android.app.AppOpsManager API. Esto se admite para controlar los casos en los que no tiene acceso al origen de atribución del autor de la llamada y puede usar directamente las AttributionSource.Builder API. Sin embargo, si los datos fluyen a través de más de dos aplicaciones (más de las que accede a los datos del autor de la llamada), debe tener un identificador para el AttributionSource contexto de la aplicación que realiza la llamada para crear un contexto de atribución. Esto significa que debe tener una API para que la otra aplicación le envíe su origen de atribución o use una API de plataforma que canaliza el origen de atribución de autores de llamadas.
No puedes falsificar una cadena de atribución sin la participación de todas las aplicaciones de la cadena de atribución (aparte del caso especial mencionado anteriormente). Para crear un origen de atribución de confianza, debe crear un contexto de atribución que apunte a un origen de atribución creado explícitamente por la aplicación a la que hace referencia, recursivamente.
Dado que la creación de un contexto de atribución conduce a todos los permisos de las aplicaciones de la cadena de atribución que se comprueban, debe esperar obtener una excepción de seguridad al acceder a las API protegidas por permisos, ya que es posible que algunas aplicaciones de la cadena no tengan el permiso.
Java documentación para android.content.AttributionSource.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.
Propiedades
| Nombre | Description |
|---|---|
| AttributionTag |
Etiqueta de atribución de la aplicación que accede a los datos protegidos por permisos. |
| Class |
Devuelve la clase en tiempo de ejecución de este |
| Creator |
Obtiene el creador parcelable de una fuente de atribución. |
| DeviceId |
Obtiene el identificador de dispositivo de este origen de atribución. |
| Handle |
Identificador de la instancia de Android subyacente. (Heredado de Object) |
| JniIdentityHashCode |
Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad. (Heredado de Object) |
| JniManagedPeerState |
Esta clase representa un origen al que se debe atribuir el acceso a los datos protegidos por permisos. (Heredado de JavaObject) |
| JniPeerMembers |
Obtiene los metadatos de JNI usados para invocar miembros de este Java del mismo nivel. |
| Next |
La siguiente aplicación para recibir los datos protegidos por permisos. |
| PackageName |
Paquete al que se accede a los datos protegidos por permisos. |
| PeerReference |
Obtiene la referencia de objeto JNI para este Java del mismo nivel. (Heredado de Object) |
| Pid |
PID que accede a los datos protegidos por permisos. |
| ThresholdClass |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. (Heredado de Object) |
| ThresholdType |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. (Heredado de Object) |
| Uid |
UID que accede a los datos protegidos por permisos. |
Métodos
| Nombre | Description |
|---|---|
| CheckCallingUid() |
Si controla un IPC y no confía en el autor de la llamada, debe validar si el origen de atribución es uno para la aplicación que realiza la llamada para evitar que el autor de la llamada le pase un origen de otra aplicación sin incluirse en la cadena de atribución. |
| Clone() |
Crea y devuelve una copia de este objeto. (Heredado de Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Esta clase representa un origen al que se debe atribuir el acceso a los datos protegidos por permisos. (Heredado de JavaObject) |
| DescribeContents() |
Describir los tipos de objetos especiales contenidos en la representación serializado de esta instancia de Parcelable. Por ejemplo, si el objeto incluirá un descriptor de archivo en la salida de writeToParcel(Parcel,int), el valor devuelto de este método debe incluir el bit de CONTENTS_FILE_DESCRIPTOR. |
| Dispose() |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| Dispose(Boolean) |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| DisposeUnlessReferenced() |
Esta clase representa un origen al que se debe atribuir el acceso a los datos protegidos por permisos. (Heredado de JavaObject) |
| EnforceCallingUid() |
Si controla un IPC y no confía en el autor de la llamada, debe validar si el origen de atribución es uno para la aplicación que realiza la llamada para evitar que el autor de la llamada le pase un origen de otra aplicación sin incluirse en la cadena de atribución. |
| Equals(Object) |
Esta clase representa un origen al que se debe atribuir el acceso a los datos protegidos por permisos. (Heredado de JavaObject) |
| Equals(Object) |
Indica si algún otro objeto es "igual a" este. (Heredado de Object) |
| GetHashCode() |
Devuelve un valor de código hash para el objeto . (Heredado de Object) |
| IsTrusted(Context) |
Comprueba si este origen de atribución puede ser de confianza. |
| JavaFinalize() |
Obsoletos.
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) |
| MyAttributionSource() |
Devuelve un genérico |
| 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) |
| SetHandle(IntPtr, JniHandleOwnership) |
Establece la propiedad Handle. (Heredado de Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Esta clase representa un origen al que se debe atribuir el acceso a los datos protegidos por permisos. (Heredado de JavaObject) |
| ToArray<T>() |
Crea una matriz administrada a partir de este contenedor de matriz Java. (Heredado de Object) |
| ToString() |
Devuelve una representación de cadena del objeto . (Heredado de Object) |
| UnregisterFromRuntime() |
Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad. (Heredado de Object) |
| 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, 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) |
| 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) |
| WriteToParcel(Parcel, ParcelableWriteFlags) |
Aplane este objeto en un paquete. |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| IJavaPeerable.Disposed() |
Esta clase representa un origen al que se debe atribuir el acceso a los datos protegidos por permisos. (Heredado de JavaObject) |
| IJavaPeerable.Finalized() |
Esta clase representa un origen al que se debe atribuir el acceso a los datos protegidos por permisos. (Heredado de JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Esta clase representa un origen al que se debe atribuir el acceso a los datos protegidos por permisos. (Heredado de JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Esta clase representa un origen al que se debe atribuir el acceso a los datos protegidos por permisos. (Heredado de JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Esta clase representa un origen al que se debe atribuir el acceso a los datos protegidos por permisos. (Heredado de JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Esta clase representa un origen al que se debe atribuir el acceso a los datos protegidos por permisos. (Heredado de JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
Esta clase representa un origen al que se debe atribuir el acceso a los datos protegidos por permisos. |
Métodos de extensión
| Nombre | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtiene el nombre JNI del tipo de la instancia |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
| JavaCast<TResult>(IJavaObject) |
Esta clase representa un origen al que se debe atribuir el acceso a los datos protegidos por permisos. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Intente coerción |