Langue

AttributionSource Classe

Définition

Cette classe représente une source à laquelle l’accès aux données protégées par autorisation doit être attribué.

[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
Héritage
AttributionSource
Attributs
Implémente

Remarques

Cette classe représente une source à laquelle l’accès aux données protégées par autorisation doit être attribué. Les sources d’attribution peuvent être chaînées pour représenter les cas où les données protégées transitent par plusieurs applications. Par exemple, l’application A peut demander à l’application B pour les contacts et à son tour l’application B peut demander l’application C pour les contacts. Dans ce cas, la chaîne d’attribution serait A -> B -> C et le flux de données serait C -> B -> A. Il existe deux principaux avantages de l’utilisation du mécanisme de source d’attribution : évitez d’effectuer des vérifications d’autorisation explicites pour le compte de l’application appelante si vous accédez à des données privées pour leur compte pour renvoyer ; évitez le double accès aux données qui se produit lorsque vous vérifiez les autorisations de l’application appelante et lorsque vous accédez aux données derrière ces autorisations (pour les autorisations d’exécution). En outre, si vous ne blâmez pas explicitement l’appelant, l’accès aux données serait comptabilisé dans votre application par rapport à l’application précédente où le vôtre était simplement un proxy.

Chacun Context a une source d’attribution et vous pouvez l’obtenir via Context#getAttributionSource() la représentation elle-même, qui est une chaîne d’une. Vous pouvez attribuer un travail à une autre application, ou plus précisément à une chaîne d’applications, via laquelle les données auxquelles vous accédez seraient transmises, en Context#createContext( ContextParams) spécifiant une source d’attribution pour l’application suivante pour recevoir les données protégées auxquelles vous accédez via AttributionSource.Builder#setNext( AttributionSource). La création de cette chaîne d’attribution garantit que la source de données vérifie si chaque application de la chaîne d’attribution a l’autorisation d’accéder aux données avant de les libérer. La source de données enregistre également de manière appropriée que ces données ont été consultées par les applications dans la séquence si les données se trouvent derrière une autorisation sensible (par exemple, dangereuse). Là encore, cela est utile si vous accédez aux données pour le compte d’une autre application, par exemple un module de reconnaissance vocale à l’aide du micro afin qu’il puisse fournir la reconnaissance à une application appelante.

Vous pouvez créer une chaîne d’attribution de vous et toute autre application sans vérification, car il s’agit d’un élément déjà disponible via les android.app.AppOpsManager API. Cela est pris en charge pour gérer les cas où vous n’avez pas accès à la source d’attribution de l’appelant et que vous pouvez utiliser directement les AttributionSource.Builder API. Toutefois, si les données transitent par plus de deux applications (plus que vous accédez aux données de l’appelant), vous devez disposer d’un handle pour le AttributionSource contexte de l’application appelante afin de créer un contexte d’attribution. Cela signifie que vous devez disposer d’une API pour l’autre application pour vous envoyer sa source d’attribution ou utiliser une API de plateforme qui canalise la source d’attribution des appelants.

Vous ne pouvez pas falsifier une chaîne d’attribution sans la participation de chaque application dans la chaîne d’attribution (à part le cas spécial mentionné ci-dessus). Pour créer une source d’attribution approuvée, vous devez créer un contexte d’attribution qui pointe vers une source d’attribution qui a été créée explicitement par l’application à laquelle il fait référence, de manière récursive.

Étant donné que la création d’un contexte d’attribution entraîne la vérification de toutes les autorisations pour les applications de la chaîne d’attribution, vous devez vous attendre à obtenir une exception de sécurité lors de l’accès aux API protégées par l’autorisation, car certaines applications de la chaîne peuvent ne pas avoir l’autorisation.

Java documentation pour android.content.AttributionSource.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

Propriétés

Nom Description
AttributionTag

Balise d’attribution de l’application accédant aux données protégées par l’autorisation.

Class

Retourne la classe runtime de ce Object.

(Hérité de Object)
Creator

Obtient le créateur de colis pour une source d’attribution.

DeviceId

Obtient l’ID d’appareil de cette source d’attribution.

Handle

Handle de l’instance Android sous-jacente.

(Hérité de Object)
JniIdentityHashCode

Obtient le code de hachage d’identité affecté à cet homologue Java par le runtime d’interopérabilité.

(Hérité de Object)
JniManagedPeerState

Cette classe représente une source à laquelle l’accès aux données protégées par autorisation doit être attribué.

(Hérité de JavaObject)
JniPeerMembers

Obtient les métadonnées JNI utilisées pour appeler les membres de cet homologue Java.

Next

Application suivante pour recevoir les données protégées par l’autorisation.

PackageName

Package qui accède aux données protégées par l’autorisation.

PeerReference

Obtient la référence d’objet JNI pour cet homologue Java.

(Hérité de Object)
Pid

PID qui accède aux données protégées par l’autorisation.

ThresholdClass

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

(Hérité de Object)
ThresholdType

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

(Hérité de Object)
Uid

UID qui accède aux données protégées par l’autorisation.

Méthodes

Nom Description
CheckCallingUid()

Si vous gérez un IPC et que vous n’approuvez pas l’appelant, vous devez vérifier si la source d’attribution est l’une pour l’application appelante afin d’empêcher l’appelant de vous transmettre une source d’une autre application sans inclure elle-même dans la chaîne d’attribution.

Clone()

Crée et retourne une copie de cet objet.

(Hérité de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Cette classe représente une source à laquelle l’accès aux données protégées par autorisation doit être attribué.

(Hérité de JavaObject)
DescribeContents()

Décrivez les types d’objets spéciaux contenus dans la représentation marshalée de cette instance Parcelable. Par exemple, si l’objet inclut un descripteur de fichier dans la sortie de writeToParcel(Parcel,int), la valeur de retour de cette méthode doit inclure le bit CONTENTS_FILE_DESCRIPTOR.

Dispose()

Libère les ressources détenues par cet homologue Java.

(Hérité de Object)
Dispose(Boolean)

Libère les ressources détenues par cet homologue Java.

(Hérité de Object)
DisposeUnlessReferenced()

Cette classe représente une source à laquelle l’accès aux données protégées par autorisation doit être attribué.

(Hérité de JavaObject)
EnforceCallingUid()

Si vous gérez un IPC et que vous n’approuvez pas l’appelant, vous devez vérifier si la source d’attribution est l’une pour l’application appelante afin d’empêcher l’appelant de vous transmettre une source d’une autre application sans inclure elle-même dans la chaîne d’attribution.

Equals(Object)

Cette classe représente une source à laquelle l’accès aux données protégées par autorisation doit être attribué.

(Hérité de JavaObject)
Equals(Object)

Indique si un autre objet est « égal à » celui-ci.

(Hérité de Object)
GetHashCode()

Retourne une valeur de code de hachage pour l’objet.

(Hérité de Object)
IsTrusted(Context)

Vérifie si cette source d’attribution peut être approuvée.

JavaFinalize()

Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet.

(Hérité de Object)
MyAttributionSource()

Retourne un générique AttributionSource qui représente l’intégralité du processus appelant.

Notify()

Réveille un thread unique qui attend le moniteur de cet objet.

(Hérité de Object)
NotifyAll()

Réveille tous les threads qui attendent le moniteur de cet objet.

(Hérité de Object)
SetHandle(IntPtr, JniHandleOwnership)

Définit la propriété Handle.

(Hérité de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Cette classe représente une source à laquelle l’accès aux données protégées par autorisation doit être attribué.

(Hérité de JavaObject)
ToArray<T>()

Crée un tableau managé à partir de ce wrapper de tableau Java.

(Hérité de Object)
ToString()

Retourne une représentation sous forme de chaîne de l’objet.

(Hérité de Object)
UnregisterFromRuntime()

Annule l’inscription de cet homologue Java à partir du runtime d’interopérabilité.

(Hérité de Object)
Wait()

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<>

(Hérité de Object)
Wait(Int64, Int32)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)
Wait(Int64)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)
WriteToParcel(Parcel, ParcelableWriteFlags)

Aplatir cet objet dans un colis.

Implémentations d’interfaces explicites

Nom Description
IJavaPeerable.Disposed()

Cette classe représente une source à laquelle l’accès aux données protégées par autorisation doit être attribué.

(Hérité de JavaObject)
IJavaPeerable.Finalized()

Cette classe représente une source à laquelle l’accès aux données protégées par autorisation doit être attribué.

(Hérité de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Cette classe représente une source à laquelle l’accès aux données protégées par autorisation doit être attribué.

(Hérité de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Cette classe représente une source à laquelle l’accès aux données protégées par autorisation doit être attribué.

(Hérité de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Cette classe représente une source à laquelle l’accès aux données protégées par autorisation doit être attribué.

(Hérité de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Cette classe représente une source à laquelle l’accès aux données protégées par autorisation doit être attribué.

(Hérité de JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Cette classe représente une source à laquelle l’accès aux données protégées par autorisation doit être attribué.

Méthodes d’extension

Nom Description
GetJniTypeName(IJavaPeerable)

Obtient le nom JNI du type de l’instance self.

JavaAs<TResult>(IJavaPeerable)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

Cette classe représente une source à laquelle l’accès aux données protégées par autorisation doit être attribué.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

S’applique à