CaptureRequestWrapper


public interface CaptureRequestWrapper extends CaptureRequestMetadata

Known direct subclasses
FakeCaptureRequest

A fake implementation of CaptureRequestWrapper designed for unit testing.


A wrapper interface representing the settings applied to a specific camera capture request.

This interface provides a unified way to inspect the configuration parameters sent to the camera device during a capture session. It supports querying:

  1. Native Camera2 capture request keys via CaptureRequest.Key (using get).

  2. Extension or custom metadata keys via Metadata.Key (using Metadata.get, inherited from Metadata).

Additionally, if access to the underlying native Android CaptureRequest is required, this interface can be unwrapped using unwrapAs (inherited from UnsafeWrapper).

Example Usage

Querying a native Camera2 CaptureRequest key:

val requestWrapper: CaptureRequestWrapper = ...
val exposureTime: Long? = requestWrapper[CaptureRequest.SENSOR_EXPOSURE_TIME]

Querying a custom metadata key:

val requestWrapper: CaptureRequestWrapper = ...
val customExtensionKey = Metadata.Key<Int>("androidx.camera.custom_extension")
val customValue: Int? = requestWrapper[customExtensionKey]

Unwrapping the underlying native CaptureRequest:

val requestWrapper: CaptureRequestWrapper = ...
val nativeRequest: CaptureRequest? = requestWrapper.unwrapAs<CaptureRequest>()

Note: This interface is not stable for inheritance. Implementations should not be created directly by clients. For testing, use the fakes in the androidx.camera.common.testing package (such as FakeCaptureRequest).

Summary

Public methods

abstract @NonNull List<@NonNull CaptureRequest.Key<@NonNull ?>>

The list of all CaptureRequest.Keys that are set or supported by this capture request.

Inherited methods

From androidx.camera.common.CaptureRequestMetadata
abstract T
<T extends Object> get(@NonNull CaptureRequest.Key<@NonNull T> key)

Retrieves the value of the specified CaptureRequest.Key.

default @NonNull T
<T extends Object> getOrDefault(
    @NonNull CaptureRequest.Key<@NonNull T> key,
    @NonNull T default
)

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

From androidx.camera.common.Metadata
abstract T
<T extends Object> get(@NonNull Metadata.Key<@NonNull T> key)

Retrieves the value associated with the specified Metadata.Key.

abstract @NonNull Set<@NonNull Metadata.Key<@NonNull ?>>

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

default @NonNull T
<T extends Object> getOrDefault(
    @NonNull Metadata.Key<@NonNull T> key,
    @NonNull T default
)

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

From androidx.camera.common.UnsafeWrapper
abstract T
<T extends Object> unwrapAs(@NonNull Class<@NonNull T> type)

Attempts to unwrap this object into the specified underlying type.

Public methods

getKeys

Added in 1.7.0-alpha03
abstract @NonNull List<@NonNull CaptureRequest.Key<@NonNull ?>> getKeys()

The list of all CaptureRequest.Keys that are set or supported by this capture request.

See also
getKeys