CaptureResultMetadata


interface CaptureResultMetadata : Metadata, UnsafeWrapper

Known direct subclasses
CaptureResultWrapper

A wrapper interface providing compatibility-focused access to CaptureResult and custom metadata.

Known indirect subclasses
FakeCaptureResult

A fake implementation of CaptureResultWrapper for testing.


An interface that provides compatibility-focused, read-only query access to the results of a single image capture.

Use this interface to query the results of a single image capture, including sensor exposure, lens status, and 3A states. Implementing classes can abstract OS version differences and cache expensive-to-retrieve properties to ensure efficient access across all API levels.

CaptureResultMetadata extends Metadata, supporting type-safe retrieval of custom library-defined metadata keys via Metadata.Key in addition to native CaptureResult.Key keys (using get and getOrDefault).

CaptureResultMetadata is a superinterface of CaptureResultWrapper.

NOTE: This interface is not stable for inheritance. Do not implement this interface directly. For testing, use the fakes in the androidx.camera.common.testing package.

Example

Querying native and custom keys:

val result: CaptureResultMetadata = ...

// Query a native CaptureResult key:
val lensState: Int? = result[CaptureResult.LENS_STATE]

// Query a custom Metadata key:
val customKey = Metadata.Key<Int>("androidx.camera.custom_key")
val customValue: Int? = result[customKey]
See also
Metadata

Summary

Public functions

operator T?
<T : Any> get(key: CaptureResult.Key<T>)

Retrieves the value of the specified CaptureResult.Key.

open T
<T : Any> getOrDefault(key: CaptureResult.Key<T>, default: T)

Retrieves the value of the specified CaptureResult.Key, or returns default if the key is not present or its value is null.

Inherited functions

From androidx.camera.common.Metadata
operator T?
<T : Any> get(key: Metadata.Key<T>)

Retrieves the value associated with the specified Metadata.Key.

open T
<T : Any> getOrDefault(key: Metadata.Key<T>, default: T)

Retrieves the value associated with the specified Metadata.Key, or returns default if the key is not present.

From androidx.camera.common.UnsafeWrapper
T?
<T : Any> unwrapAs(type: Class<T>)

Attempts to unwrap this object into the specified underlying type.

Inherited properties

From androidx.camera.common.Metadata
Set<Metadata.Key<*>>

The set of all custom Metadata.Keys currently available in this container.

Public functions

get

Added in 1.7.0-alpha03
operator fun <T : Any> get(key: CaptureResult.Key<T>): T?

Retrieves the value of the specified CaptureResult.Key.

Parameters
<T : Any>

The type of the value (must be non-nullable).

key: CaptureResult.Key<T>

The key to query.

Returns
T?

The value of the key, or null if the key is not present or unsupported.

getOrDefault

Added in 1.7.0-alpha03
open fun <T : Any> getOrDefault(key: CaptureResult.Key<T>, default: T): T

Retrieves the value of the specified CaptureResult.Key, or returns default if the key is not present or its value is null.

Parameters
<T : Any>

The type of the value (must be non-nullable).

key: CaptureResult.Key<T>

The key to query.

default: T

The value to return if the key is not present or its value is null.

Returns
T

The value of the key, or default if null.