Langue

BlobStoreManager Classe

Définition

Cette classe fournit l’accès au magasin d’objets blob géré par le système.

[Android.Runtime.Register("android/app/blob/BlobStoreManager", ApiSince=30, DoNotGenerateAcw=true)]
public class BlobStoreManager : Java.Lang.Object
[<Android.Runtime.Register("android/app/blob/BlobStoreManager", ApiSince=30, DoNotGenerateAcw=true)>]
type BlobStoreManager = class
    inherit Object
Héritage
BlobStoreManager
Attributs

Remarques

Cette classe fournit l’accès au magasin d’objets blob géré par le système.

Les applications peuvent publier et accéder à un objet blob de données à l’aide d’un BlobHandle objet qui peut être créé avec BlobHandle#createWithSha256(byte[], CharSequence, long, String). Cet BlobHandle objet encapsule les informations suivantes utilisées pour identifier les objets blob : <ul><li>BlobHandle#getSha256Digest()<li li>BlobHandle#getLabel()<li>BlobHandle#getExpiryTimeMillis()<>BlobHandle#getTag()</ul> Pour que deux BlobHandle objets soient considérés comme identiques, toutes ces informations doivent être égales.

Pour contribuer à un nouvel objet blob de données, une application doit créer une session à l’aide BlobStoreManager#createSession(BlobHandle) de cette session, puis ouvrir cette session pour l’écriture à l’aide BlobStoreManager#openSession(long)de .

L’extrait de code suivant montre comment créer et ouvrir une session pour l’écriture :

final long sessionId = blobStoreManager.createSession(blobHandle);
                try (BlobStoreManager.Session session = blobStoreManager.openSession(sessionId)) {
                    try (OutputStream out = new ParcelFileDescriptor.AutoCloseOutputStream(
                            session.openWrite(offsetBytes, lengthBytes))) {
                        writeData(out);
                    }
                }

Si toutes les données n’ont pas pu être écrites en une seule tentative, les applications peuvent fermer cette session et la rouvrir à l’aide de l’ID de session obtenu via BlobStoreManager#createSession(BlobHandle). Notez que les données de session sont conservées et peuvent être rouvertes pour terminer la contribution des données, même au cours des redémarrages de l’appareil.

Une fois les données écrites dans la session, elles peuvent être validées à l’aide Session#commit(Executor, Consumer)de . Tant que la session n’est pas validée, les données écrites dans la session ne seront pas partagées avec une application.

Une fois qu’une session est validée à l’aide Session#commit(Executor, Consumer), toutes les données écrites dans le cadre de cette session sont scellées et ne peuvent plus être modifiées.

Avant de valider la session, les applications peuvent indiquer quelles applications sont autorisées à accéder aux données fournies à l’aide d’un ou plusieurs des modes d’accès suivants : <ul><li li>Session#allowPackageAccess(String, byte[]) qui permettra aux packages spécifiques d’accéder aux objets blob. <li>Session#allowSameSignatureAccess() qui autorise uniquement les applications signées avec le même certificat que l’application qui a contribué à l’accès à l’objet blob. <li>Session#allowPublicAccess() qui permettra à n’importe quelle application sur l’appareil d’accéder à l’objet blob. </ul>

L’extrait de code suivant montre comment spécifier le mode d’accès et valider la session :

try (BlobStoreManager.Session session = blobStoreManager.openSession(sessionId)) {
                    try (OutputStream out = new ParcelFileDescriptor.AutoCloseOutputStream(
                            session.openWrite(offsetBytes, lengthBytes))) {
                        writeData(out);
                    }
                    session.allowSameSignatureAccess();
                    session.allowPackageAccess(packageName, certificate);
                    session.commit(executor, callback);
                }

Les applications qui répondent au moins à l’une des contraintes de mode d’accès spécifiées par l’éditeur de l’objet blob de données pourront y accéder.

Un objet blob de données publié sans spécifier l’un de ces modes d’accès sera considéré comme privé et seule l’application qui a contribué à l’objet blob de données sera autorisée à y accéder. Cela est toujours utile pour l’intégrité globale du système d’appareil, car le système peut essayer de conserver une copie d’objet blob de données sur le disque lorsque plusieurs applications contribuent aux mêmes données.

Il est fortement recommandé que les applications utilisent l’une des Session#allowPackageAccess(String, byte[]) applications ou Session#allowSameSignatureAccess() lorsqu’elles connaissent, à l’avance, l’ensemble d’applications avec lesquelles elles souhaitent partager les objets blob. Session#allowPublicAccess() est destiné aux données disponibles publiquement validées à partir de bibliothèques et de kits SDK.

Une fois qu’un objet blob de données est validé avec Session#commit(Executor, Consumer), il est accessible à l’aide BlobStoreManager#openBlob(BlobHandle)de , en supposant que l’appelant satisfait aux contraintes de tous les modes d’accès associés à cet objet blob de données. Une application peut acquérir un bail sur un objet blob avec BlobStoreManager#acquireLease(BlobHandle, int) et libérer le bail avec BlobStoreManager#releaseLease(BlobHandle). Un objet blob ne sera pas supprimé du système alors qu’il y a au moins une application qui la loue.

L’extrait de code suivant montre comment accéder à l’objet blob de données :

try (InputStream in = new ParcelFileDescriptor.AutoCloseInputStream(
                        blobStoreManager.openBlob(blobHandle)) {
                    useData(in);
                }

Java documentation pour android.app.blob.BlobStoreManager.

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.

Constructeurs

Nom Description
BlobStoreManager(IntPtr, JniHandleOwnership)

Cette classe fournit l’accès au magasin d’objets blob géré par le système.

Propriétés

Nom Description
Class

Retourne la classe runtime de ce Object.

(Hérité de Object)
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 fournit l’accès au magasin d’objets blob géré par le système.

(Hérité de JavaObject)
JniPeerMembers

Cette classe fournit l’accès au magasin d’objets blob géré par le système.

LeasedBlobs

Retournez les BlobHandle BlobHandles objets blob de données correspondants auxquels l’application appelante a actuellement un bail.

PeerReference

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

(Hérité de Object)
RemainingLeaseQuotaBytes

Retournez la taille de quota restante pour l’acquisition d’un bail (en octets) qui indique la quantité restante de données sur lesquelles une application peut acquérir un bail avant que le système commence à rejeter les demandes de bail.

ThresholdClass

Cette classe fournit l’accès au magasin d’objets blob géré par le système.

ThresholdType

Cette classe fournit l’accès au magasin d’objets blob géré par le système.

Méthodes

Nom Description
AbandonSession(Int64)

Abandonne une session existante et supprime toutes les données écrites dans cette session jusqu’à présent.

AcquireLease(BlobHandle, ICharSequence, Int64)

Acquérir un bail pour l’objet blob représenté par blobHandle.

AcquireLease(BlobHandle, ICharSequence)

Acquérir un bail pour l’objet blob représenté par blobHandle.

AcquireLease(BlobHandle, Int32, Int64)

Acquérir un bail pour l’objet blob représenté par blobHandle.

AcquireLease(BlobHandle, Int32)

Acquérir un bail pour l’objet blob représenté par blobHandle.

AcquireLease(BlobHandle, String, Int64)

Acquérir un bail pour l’objet blob représenté par blobHandle.

AcquireLease(BlobHandle, String)

Acquérir un bail pour l’objet blob représenté par blobHandle.

Clone()

Crée et retourne une copie de cet objet.

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

Cette classe fournit l’accès au magasin d’objets blob géré par le système.

(Hérité de JavaObject)
CreateSession(BlobHandle)

Créez une session à l’aide de l’id donné BlobHandle, en retournant un ID unique qui représente la session.

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 fournit l’accès au magasin d’objets blob géré par le système.

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

Cette classe fournit l’accès au magasin d’objets blob géré par le système.

(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)
JavaFinalize()
Obsolète.

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)
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)
OpenBlob(BlobHandle)

Ouvre un objet blob existant pour la lecture à partir du magasin d’objets blob géré par le système.

OpenSession(Int64)

Ouvrez une session existante pour effectuer activement le travail.

ReleaseLease(BlobHandle)

Relâchez tout bail actif sur l’objet blob représenté par blobHandle lequel est actuellement détenu par l’appelant.

SetHandle(IntPtr, JniHandleOwnership)

Définit la propriété Handle.

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

Cette classe fournit l’accès au magasin d’objets blob géré par le système.

(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)

Implémentations d’interfaces explicites

Nom Description
IJavaPeerable.Disposed()

Cette classe fournit l’accès au magasin d’objets blob géré par le système.

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

Cette classe fournit l’accès au magasin d’objets blob géré par le système.

(Hérité de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Cette classe fournit l’accès au magasin d’objets blob géré par le système.

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

Cette classe fournit l’accès au magasin d’objets blob géré par le système.

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

Cette classe fournit l’accès au magasin d’objets blob géré par le système.

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

Cette classe fournit l’accès au magasin d’objets blob géré par le système.

(Hérité de JavaObject)

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 fournit l’accès au magasin d’objets blob géré par le système.

TryJavaCast<TResult>(IJavaPeerable, TResult)

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

S’applique à