CLUSTER_DISPLAY_STATE
What it is
Changes the state of the cluster display.
Bounds: the area to render the cluster Activity. Inset: the area which Activity should avoid from placing any important information.
int32[0]: on/off: 0 - off, 1 - on, -1 - don't care int32[1]: Bounds - left: positive number - left position in pixels -1 - don't care (should set all Bounds fields) int32[2]: Bounds - top: same format with 'left' int32[3]: Bounds - right: same format with 'left' int32[4]: Bounds - bottom: same format with 'left' int32[5]: Inset - left: positive number - actual left inset value in pixels -1 - don't care (should set "don't care" all Inset fields) int32[6]: Inset - top: same format with 'left' int32[7]: Inset - right: same format with 'left' int32[8]: Inset - bottom: same format with 'left'
How the ID is built
A property ID is a 32-bit value packing four fields. Reading 0x11410f35 apart:
| Field | Mask | Value | Means |
|---|---|---|---|
| Group | 0xf0000000 | 0x10000000 | SYSTEM |
| Area | 0x0f000000 | 0x01000000 | GLOBAL |
| Type | 0x00ff0000 | 0x00410000 | INT32_VEC |
| Ordinal | 0x0000ffff | 0x00000f35 | 0xf35 |
Reading it from an app
CarPropertyManager mgr = (CarPropertyManager)
car.getCarManager(Car.PROPERTY_SERVICE);
CarPropertyValue<Integer> value =
mgr.getProperty(VehiclePropertyIds.CLUSTER_DISPLAY_STATE, 0);This property is read-only — writes are rejected. It fires a callback whenever the value changes.

