Lenguaje

AttributionSource Clase

Definición

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
AttributionSource
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 Objectobjeto .

(Heredado de Object)
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 AttributionSource que representa todo el proceso de llamada.

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 self.

JavaAs<TResult>(IJavaPeerable)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

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 self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

Se aplica a