AttributionSource Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- 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 |
| 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 |
| 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 |
| JavaAs<TResult>(IJavaPeerable) |
Essayez de forcer |
| 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 |