Lenguaje

BlobStoreManager Clase

Definición

Esta clase proporciona acceso al almacén de blobs administrado por el sistema.

[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
Herencia
BlobStoreManager
Atributos

Comentarios

Esta clase proporciona acceso al almacén de blobs administrado por el sistema.

Las aplicaciones pueden publicar y acceder a un blob de datos mediante un BlobHandle objeto que se puede crear con BlobHandle#createWithSha256(byte[], CharSequence, long, String). Este BlobHandle objeto encapsula los siguientes fragmentos de información utilizados para identificar los blobs: <ul><li li>BlobHandle#getSha256Digest()<>BlobHandle#getLabel()<>BlobHandle#getExpiryTimeMillis()<>BlobHandle#getTag()</ul> Para que dos BlobHandle objetos se consideren idénticos, todos estos fragmentos de información deben ser iguales.

Para contribuir a un nuevo blob de datos, una aplicación debe crear una sesión mediante BlobStoreManager#createSession(BlobHandle) y, a continuación, abrir esta sesión para escribir mediante BlobStoreManager#openSession(long).

El siguiente fragmento de código muestra cómo crear y abrir una sesión para escribir:

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 no se pudieron escribir todos los datos en un único intento, las aplicaciones pueden cerrar esta sesión y volver a abrirlos con el identificador de sesión obtenido a través BlobStoreManager#createSession(BlobHandle)de . Tenga en cuenta que los datos de sesión se conservan y se pueden volver a abrir para completar la contribución de datos, incluso en los reinicios del dispositivo.

Después de escribir los datos en la sesión, se puede confirmar mediante Session#commit(Executor, Consumer). Hasta que se confirme la sesión, los datos escritos en la sesión no se compartirán con ninguna aplicación.

Una vez confirmada una sesión mediante Session#commit(Executor, Consumer), los datos escritos como parte de esta sesión están sellados y ya no se pueden modificar.

Antes de confirmar la sesión, las aplicaciones pueden indicar qué aplicaciones pueden acceder a los datos aportados mediante uno o varios de los siguientes modos de acceso: <ul><li>Session#allowPackageAccess(String, byte[]) , lo que permitirá que paquetes específicos accedan a los blobs. <li>Session#allowSameSignatureAccess() , que solo permitirá que las aplicaciones firmadas con el mismo certificado que la aplicación que contribuyó al blob para acceder a él. <li>Session#allowPublicAccess() , que permitirá que cualquier aplicación del dispositivo acceda al blob. </ul>

El siguiente fragmento de código muestra cómo especificar el modo de acceso y confirmar la sesión:

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);
                }

Las aplicaciones que cumplen al menos una de las restricciones de modo de acceso especificadas por el publicador del blob de datos podrán acceder a ella.

Un blob de datos publicado sin especificar ninguno de estos modos de acceso se considerará privado y solo la aplicación que contribuyó al blob de datos podrá acceder a él. Esto sigue siendo útil para el estado general del sistema del dispositivo, ya que el sistema puede intentar mantener una copia del blob de datos en el disco cuando varias aplicaciones contribuyen a los mismos datos.

Se recomienda encarecidamente que las aplicaciones usen uno de Session#allowPackageAccess(String, byte[]) o Session#allowSameSignatureAccess() cuando sepan, con antelación, el conjunto de aplicaciones con las que desea compartir los blobs. Session#allowPublicAccess() está diseñado para datos disponibles públicamente confirmados desde bibliotecas y SDK.

Una vez que se confirma un blob de datos con Session#commit(Executor, Consumer), se puede acceder a él mediante BlobStoreManager#openBlob(BlobHandle), suponiendo que el llamador satisface las restricciones de cualquiera de los modos de acceso asociados a ese blob de datos. Una aplicación puede adquirir una concesión en un blob con BlobStoreManager#acquireLease(BlobHandle, int) y liberar la concesión con BlobStoreManager#releaseLease(BlobHandle). Un blob no se eliminará del sistema mientras haya al menos una aplicación que lo arrenda.

En el fragmento de código siguiente se muestra cómo acceder al blob de datos:

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

Java documentación para android.app.blob.BlobStoreManager.

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.

Constructores

Nombre Description
BlobStoreManager(IntPtr, JniHandleOwnership)

Esta clase proporciona acceso al almacén de blobs administrado por el sistema.

Propiedades

Nombre Description
Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
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 proporciona acceso al almacén de blobs administrado por el sistema.

(Heredado de JavaObject)
JniPeerMembers

Esta clase proporciona acceso al almacén de blobs administrado por el sistema.

LeasedBlobs

Devuelve el BlobHandle BlobHandles correspondiente a los blobs de datos en los que la aplicación que llama tiene actualmente una concesión.

PeerReference

Obtiene la referencia de objeto JNI para este Java del mismo nivel.

(Heredado de Object)
RemainingLeaseQuotaBytes

Devuelve el tamaño de cuota restante para adquirir una concesión (en bytes) que indica la cantidad restante de datos en los que una aplicación puede adquirir una concesión antes de que el sistema empiece a rechazar las solicitudes de concesión.

ThresholdClass

Esta clase proporciona acceso al almacén de blobs administrado por el sistema.

ThresholdType

Esta clase proporciona acceso al almacén de blobs administrado por el sistema.

Métodos

Nombre Description
AbandonSession(Int64)

Abandona una sesión existente y elimina los datos escritos en esa sesión hasta ahora.

AcquireLease(BlobHandle, ICharSequence, Int64)

Adquiera una concesión al blob representado por blobHandle.

AcquireLease(BlobHandle, ICharSequence)

Adquiera una concesión al blob representado por blobHandle.

AcquireLease(BlobHandle, Int32, Int64)

Adquiera una concesión al blob representado por blobHandle.

AcquireLease(BlobHandle, Int32)

Adquiera una concesión al blob representado por blobHandle.

AcquireLease(BlobHandle, String, Int64)

Adquiera una concesión al blob representado por blobHandle.

AcquireLease(BlobHandle, String)

Adquiera una concesión al blob representado por blobHandle.

Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Esta clase proporciona acceso al almacén de blobs administrado por el sistema.

(Heredado de JavaObject)
CreateSession(BlobHandle)

Cree una nueva sesión con el especificado BlobHandley devuelva un identificador único que represente la sesión.

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 proporciona acceso al almacén de blobs administrado por el sistema.

(Heredado de JavaObject)
Equals(Object)

Esta clase proporciona acceso al almacén de blobs administrado por el sistema.

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

Abre un blob existente para leer desde el almacén de blobs administrado por el sistema.

OpenSession(Int64)

Abra una sesión existente para realizar activamente el trabajo.

ReleaseLease(BlobHandle)

Libere cualquier concesión activa al blob representado por blobHandle el autor de la llamada.

SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Esta clase proporciona acceso al almacén de blobs administrado por el sistema.

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

Implementaciones de interfaz explícitas

Nombre Description
IJavaPeerable.Disposed()

Esta clase proporciona acceso al almacén de blobs administrado por el sistema.

(Heredado de JavaObject)
IJavaPeerable.Finalized()

Esta clase proporciona acceso al almacén de blobs administrado por el sistema.

(Heredado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Esta clase proporciona acceso al almacén de blobs administrado por el sistema.

(Heredado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Esta clase proporciona acceso al almacén de blobs administrado por el sistema.

(Heredado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Esta clase proporciona acceso al almacén de blobs administrado por el sistema.

(Heredado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Esta clase proporciona acceso al almacén de blobs administrado por el sistema.

(Heredado de JavaObject)

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 proporciona acceso al almacén de blobs administrado por el sistema.

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