PrivacySandboxValue


@Retention(value = AnnotationRetention.RUNTIME)
@Target(allowedTargets = [AnnotationTarget.CLASS])
annotation PrivacySandboxValue


Annotated values that can be sent to/from SDKs in the Privacy Sandbox.

The values should be public Kotlin data classes or enum classes.

For data classes, they should only contain immutable properties with types supported by the sandbox (primitives, PrivacySandboxInterface, PrivacySandboxValue, or lists of primitives or PrivacySandboxValue). PrivacySandboxCallback interfaces are not allowed.

For enum classes, they should only contain basic enum constants.

Values cannot have functions, type parameters or properties with default values.

Backwards compatibility: After the data/enum class is first published, no new fields should be added, and existing fields should not be renamed, reordered, or changed to another type, unless the SDK major version is incremented. This is required for backwards compatibility with possibly mismatching SDK versions on the client side.

Data class usage example:

@PrivacySandboxValue
data class ComplicatedStructure(
val id: Int,
val separator: Char,
val message: String,
val hugeNumber: Double,
val myInterface: MyInterface,
val numbers: List<Int>,
val maybeNumber: Int?,
val maybeInterface: MyInterface?,
)

Enum class usage example:

@PrivacySandboxValue
enum class Direction(
UP,
DOWN,
)

Summary

Public constructors

Public constructors

PrivacySandboxValue

PrivacySandboxValue()