# CarValue

Artifact: [androidx.car.app:app](https://developer.android.com/jetpack/androidx/releases/car-app) [View Source](https://cs.android.com/search?q=file:androidx/car/app/hardware/common/CarValue.java+class:androidx.car.app.hardware.common.CarValue) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/car-app#1.1.0)

*** ** * ** ***


```
@CarProtocol
@RequiresCarApi(value = 3)
public final class CarValue<T>
```

<br />

*** ** * ** ***

A data value object returned from car hardware with associated metadata including status, timestamp, and the actual value.

| Parameters |
|---|---|
| `<T>` | data type which is returned by the `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue` |

## Summary

| ### Constants |
|---|---|
| `static final int` | `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue#STATUS_SUCCESS() = 1` `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue` was obtained successfully. |
| `static final int` | `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue#STATUS_UNAVAILABLE() = 3` `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue` attempted for unavailable property, sensor, or action. |
| `static final int` | `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue#STATUS_UNIMPLEMENTED() = 2` `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue` attempted for unimplemented property, sensor, or action. |
| `static final int` | `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue#STATUS_UNKNOWN() = 0` `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue` has unknown status. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue#CarValue(T,long,int)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html T value, long timestampMillis, int status)` Constructs a new instance of a `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue`. |
| `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue#CarValue(T,long,int,java.util.List<androidx.car.app.hardware.common.CarZone>)( @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html T value, long timestampMillis, int status, @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/car/app/hardware/common/CarZone> zones )` Constructs a new instance of a `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue`. |

| ### Public methods |
|---|---|
| `boolean` | `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue#equals(java.lang.Object)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/Object.html other)` |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/car/app/hardware/common/CarZone>` | `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue#getCarZones()()` Returns a list of car zones associated with this `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue`. |
| `int` | `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue#getStatus()()` Returns the status of this particular result such as success, unavailable, or unimplemented. |
| `long` | `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue#getTimestampMillis()()` Returns the time in milliseconds at which the event happened. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html T` | `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue#getValue()()` Returns a the data value or `null` if the status is not successful. |
| `int` | `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue#hashCode()()` |
| `@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/car/app/hardware/common/CarValue#toString()()` |

## Constants

### STATUS_SUCCESS

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

```
public static final int STATUS_SUCCESS = 1
```

`https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue` was obtained successfully.

### STATUS_UNAVAILABLE

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

```
public static final int STATUS_UNAVAILABLE = 3
```

`https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue` attempted for unavailable property, sensor, or action.

For example, the car hardware might not be able to return a value such as climate at the current time because the engine is off and will set the status to this value.

### STATUS_UNIMPLEMENTED

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

```
public static final int STATUS_UNIMPLEMENTED = 2
```

`https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue` attempted for unimplemented property, sensor, or action.

For example, the car hardware might not be able to return a value such as speed or energy level and will set the status to this value.

### STATUS_UNKNOWN

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

```
public static final int STATUS_UNKNOWN = 0
```

`https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue` has unknown status.

## Public constructors

### CarValue

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

```
public CarValue(@Nullable T value, long timestampMillis, int status)
```

Constructs a new instance of a `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue`. Uses `https://developer.android.com/reference/androidx/car/app/hardware/common/CarZone#CAR_ZONE_GLOBAL()` as the zone for this instance.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html T value` | data to be returned with the result |
| `long timestampMillis` | the time in milliseconds when the value was generated (see `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue#getTimestampMillis()`) |
| `int status` | the status code associated with this value |

### CarValue

Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/car-app#1.3.0)

```
public CarValue(
    @Nullable T value,
    long timestampMillis,
    int status,
    @NonNull List<CarZone> zones
)
```

Constructs a new instance of a `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue`.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html T value` | data to be returned with the result |
| `long timestampMillis` | the time in milliseconds when the value was generated (see `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue#getTimestampMillis()`) |
| `int status` | the status code associated with this value |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/car/app/hardware/common/CarZone> zones` | the car zones associated with this value |

## Public methods

### equals

```
public boolean equals(@Nullable Object other)
```

### getCarZones

Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/car-app#1.3.0)

```
public @NonNull List<CarZone> getCarZones()
```

Returns a list of car zones associated with this `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue`.

For a global vehicle function, the list will only contain `https://developer.android.com/reference/androidx/car/app/hardware/common/CarZone#CAR_ZONE_ROW_ALL()`. Returns an empty list when `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue#getStatus()` is `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue#STATUS_UNIMPLEMENTED()`.

### getStatus

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

```
public int getStatus()
```

Returns the status of this particular result such as success, unavailable, or unimplemented.

### getTimestampMillis

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

```
public long getTimestampMillis()
```

Returns the time in milliseconds at which the event happened.

For a given property, sensor, or action, each new value's timestamp should be monotonically increasing using the same time base as SystemClock.elapsedRealtime().

### getValue

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

```
public @Nullable T getValue()
```

Returns a the data value or `null` if the status is not successful.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/car/app/hardware/common/CarValue#getStatus()` |   |

### hashCode

```
public int hashCode()
```

### toString

```
public @NonNull String toString()
```