REMOVE_USER
What it is
Called by the Android System after an Android user was removed.
The HAL can use this property to remove its equivalent user.
This is write-only call - the Android System is not expecting a reply from the HAL. Hence, this request should not fail - if the equivalent HAL user cannot be removed, then HAL should mark it as inactive or recover in some other way.
The request is made by setting the VehiclePropValue with the contents defined by RemoveUserRequest.
For example, if system had 3 users (0, 10, and 11) and user 11 was removed, the request would be:
int32[0]: 42 // request id int32[1]: 11 // (Android user id of the removed user) int32[2]: 0 // (Android user flags of the removed user) int32[3]: 10 // current user int32[4]: 0 // current user flags (none) int32[5]: 2 // number of users int32[6]: 0 // 1st user (user 0) int32[7]: 0 // 1st user flags (none) int32[8]: 10 // 2nd user (user 10) int32[9]: 0 // 2nd user flags (none)
How the ID is built
A property ID is a 32-bit value packing four fields. Reading 0x11e00f0a apart:
| Field | Mask | Value | Means |
|---|---|---|---|
| Group | 0xf0000000 | 0x10000000 | SYSTEM |
| Area | 0x0f000000 | 0x01000000 | GLOBAL |
| Type | 0x00ff0000 | 0x00e00000 | MIXED |
| Ordinal | 0x0000ffff | 0x00000f0a | 0xf0a |
Reading it from an app
CarPropertyManager mgr = (CarPropertyManager)
car.getCarManager(Car.PROPERTY_SERVICE);
mgr.setProperty(Object.class,
VehiclePropertyIds.REMOVE_USER, 0, value);This property is write-only — it cannot be read back. It is static for the life of the vehicle, so read it once and cache it.

