# KeyedAppState

Artifact: [androidx.enterprise:enterprise-feedback](https://developer.android.com/jetpack/androidx/releases/enterprise) [View Source](https://cs.android.com/search?q=file:androidx/enterprise/feedback/KeyedAppState.java+class:androidx.enterprise.feedback.KeyedAppState) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/enterprise#1.0.0)

*** ** * ** ***


```
@AutoValue
public abstract class KeyedAppState
```

<br />

*** ** * ** ***

A keyed app state to be sent to an EMM (enterprise mobility management), with the intention that it is displayed to the management organization.

## Summary

| ### Nested types |
|---|
| `@https://www.javadoc.io/doc/com.google.auto.value/auto-value/latest/com/google/auto/value/AutoValue.Builder.html public abstract class https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState.KeyedAppStateBuilder` The builder for `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState`. |

| ### Constants |
|---|---|
| `static final int` | `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#MAX_DATA_LENGTH() = 1000` **This field is deprecated.** Use `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#getMaxDataLength()` <br /> |
| `static final int` | `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#MAX_KEY_LENGTH() = 100` **This field is deprecated.** Use `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#getMaxKeyLength()` <br /> |
| `static final int` | `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#MAX_MESSAGE_LENGTH() = 1000` **This field is deprecated.** Use `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#getMaxMessageLength()` <br /> |
| `static final int` | `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#SEVERITY_ERROR() = 2` |
| `static final int` | `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#SEVERITY_INFO() = 1` |

| ### Public methods |
|---|---|
| `static @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState.KeyedAppStateBuilder` | `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#builder()()` Create a `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState.KeyedAppStateBuilder`. |
| `abstract @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#getData()()` Optionally, a machine-readable value to be read by the EMM. |
| `abstract @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#getKey()()` The key for the app state. |
| `static final int` | `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#getMaxDataLength()()` Get the maximum length of `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#getData()`. |
| `static final int` | `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#getMaxKeyLength()()` Get the maximum length of `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#getKey()`. |
| `static final int` | `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#getMaxMessageLength()()` Get the maximum length of `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#getMessage()`. |
| `abstract @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#getMessage()()` Optionally, a free-form message string to explain the app state. |
| `abstract int` | `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#getSeverity()()` The severity of the app state. |

## Constants

### MAX_DATA_LENGTH

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/enterprise#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/enterprise#1.1.0)

```
public static final int MAX_DATA_LENGTH = 1000
```

> [!CAUTION]
> **This field is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#getMaxDataLength()`

### MAX_KEY_LENGTH

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/enterprise#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/enterprise#1.1.0)

```
public static final int MAX_KEY_LENGTH = 100
```

> [!CAUTION]
> **This field is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#getMaxKeyLength()`

### MAX_MESSAGE_LENGTH

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/enterprise#1.0.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/enterprise#1.1.0)

```
public static final int MAX_MESSAGE_LENGTH = 1000
```

> [!CAUTION]
> **This field is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#getMaxMessageLength()`

### SEVERITY_ERROR

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/enterprise#1.0.0)

```
public static final int SEVERITY_ERROR = 2
```

### SEVERITY_INFO

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/enterprise#1.0.0)

```
public static final int SEVERITY_INFO = 1
```

## Public methods

### builder

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/enterprise#1.0.0)

```
public static @NonNull KeyedAppState.KeyedAppStateBuilder builder()
```

Create a `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState.KeyedAppStateBuilder`.

### getData

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/enterprise#1.0.0)

```
public abstract @Nullable String getData()
```

Optionally, a machine-readable value to be read by the EMM. For example, setting values that the admin can choose to query against in the EMM console (e.g. "notify me if the battery_warning data \<10").

### getKey

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/enterprise#1.0.0)

```
public abstract @NonNull String getKey()
```

The key for the app state. Acts as a point of reference for what the app is providing state for. For example, when providing managed configuration feedback, this key could be the managed configuration key to allow EMMs to take advantage of the connection in their UI.

### getMaxDataLength

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/enterprise#1.1.0)

```
public static final int getMaxDataLength()
```

Get the maximum length of `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#getData()`.

### getMaxKeyLength

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/enterprise#1.1.0)

```
public static final int getMaxKeyLength()
```

Get the maximum length of `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#getKey()`.

### getMaxMessageLength

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/enterprise#1.1.0)

```
public static final int getMaxMessageLength()
```

Get the maximum length of `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#getMessage()`.

### getMessage

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/enterprise#1.0.0)

```
public abstract @Nullable String getMessage()
```

Optionally, a free-form message string to explain the app state. If the state was triggered by a particular value (e.g. a managed configuration value), it should be included in the message.

### getSeverity

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/enterprise#1.0.0)

```
public abstract int getSeverity()
```

The severity of the app state. This allows EMMs to choose to notify admins of errors. This should only be set to `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#SEVERITY_ERROR()` for genuine error conditions that a management organization needs to take action to fix.

When sending an app state containing errors, it is critical that follow-up app states are sent when the errors have been resolved, using the same key and this value set to `https://developer.android.com/reference/androidx/enterprise/feedback/KeyedAppState#SEVERITY_INFO()`.