BlobStoreManager 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 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
- 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 |
| 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 |
| 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 |
| AcquireLease(BlobHandle, ICharSequence) |
Acquérir un bail pour l’objet blob représenté par |
| AcquireLease(BlobHandle, Int32, Int64) |
Acquérir un bail pour l’objet blob représenté par |
| AcquireLease(BlobHandle, Int32) |
Acquérir un bail pour l’objet blob représenté par |
| AcquireLease(BlobHandle, String, Int64) |
Acquérir un bail pour l’objet blob représenté par |
| AcquireLease(BlobHandle, String) |
Acquérir un bail pour l’objet blob représenté par |
| 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é |
| 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 |
| 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 |
| 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 fournit l’accès au magasin d’objets blob géré par le système. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Essayez de forcer |