/* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.car; import static android.car.feature.Flags.FLAG_ANDROID_VIC_VEHICLE_PROPERTIES; import static android.Manifest.permission.ACCESS_FINE_LOCATION; import static com.android.car.internal.ExcludeFromCodeCoverageGeneratedReport.BOILERPLATE_CODE; import static com.android.car.internal.property.VehiclePropertyIdDebugUtils.isDefined; import static com.android.car.internal.property.VehiclePropertyIdDebugUtils.toName; import android.annotation.FlaggedApi; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.car.hardware.CarHvacFanDirection; import android.car.hardware.CarPropertyValue; import android.car.hardware.property.AutomaticEmergencyBrakingState; import android.car.hardware.property.BlindSpotWarningState; import android.car.hardware.property.CruiseControlCommand; import android.car.hardware.property.CruiseControlState; import android.car.hardware.property.CruiseControlType; import android.car.hardware.property.DriverDistractionState; import android.car.hardware.property.DriverDistractionWarning; import android.car.hardware.property.DriverDrowsinessAttentionState; import android.car.hardware.property.DriverDrowsinessAttentionWarning; import android.car.hardware.property.EmergencyLaneKeepAssistState; import android.car.hardware.property.ErrorState; import android.car.hardware.property.EvChargeState; import android.car.hardware.property.EvChargingConnectorType; import android.car.hardware.property.EvRegenerativeBrakingState; import android.car.hardware.property.EvStoppingMode; import android.car.hardware.property.ForwardCollisionWarningState; import android.car.hardware.property.HandsOnDetectionDriverState; import android.car.hardware.property.HandsOnDetectionWarning; import android.car.hardware.property.LaneCenteringAssistCommand; import android.car.hardware.property.LaneCenteringAssistState; import android.car.hardware.property.LaneDepartureWarningState; import android.car.hardware.property.LaneKeepAssistState; import android.car.hardware.property.LocationCharacterization; import android.car.hardware.property.TrailerState; import android.car.hardware.property.VehicleElectronicTollCollectionCardStatus; import android.car.hardware.property.VehicleElectronicTollCollectionCardType; import android.car.hardware.property.VehicleLightState; import android.car.hardware.property.VehicleLightSwitch; import android.car.hardware.property.VehicleOilLevel; import android.car.hardware.property.VehicleTurnSignal; import android.car.hardware.property.WindshieldWipersState; import android.car.hardware.property.WindshieldWipersSwitch; import com.android.car.internal.ExcludeFromCodeCoverageGeneratedReport; /** * List of vehicle property IDs. * *
Property IDs are used with the {@link android.car.hardware.property.CarPropertyManager} APIs * (e.g. {@link android.car.hardware.property.CarPropertyManager#getProperty(int, int)} or {@link * android.car.hardware.property.CarPropertyManager#setProperty(Class, int, int, Object)}). */ public final class VehiclePropertyIds { /** * Undefined property. * *
This property should never be used/will never be supported. */ public static final int INVALID = 0; /** * VIN of vehicle * *
Property Config: *
Required Permission: *
This property communicates the vehicle's public brand name. * *
Property Config: *
Required Permission: *
This property communicates the vehicle's public model name. * *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
This property communicates the maximum amount of the fuel that can be stored in the * vehicle in milliliters. This property will not be implemented for electric vehicles. That is, * if {@link #INFO_FUEL_TYPE} only contains {@link FuelType#ELECTRIC}, this property will not be * implemented. For EVs, see {@link #INFO_EV_BATTERY_CAPACITY}. * *
Property Config: *
Required Permission: *
{@link FuelType#ELECTRIC} will only be included if the vehicle is plug in rechargeable. * Note that for this reason, even though {@link FuelType#ELECTRIC} is not listed as a fuel * type, other EV properties such as {@link #INFO_EV_BATTERY_CAPACITY} can still be supported on * the vehicle. * *
For example: *
Property Config: *
Required Permission: *
Returns the nominal battery capacity in {@link android.car.VehicleUnit#WATT_HOUR}, if EV * or hybrid. This is the usable battery capacity when the vehicle is new. This value might be * different from {@link #EV_CURRENT_BATTERY_CAPACITY} because {@link * #EV_CURRENT_BATTERY_CAPACITY} returns the real-time usable battery capacity taking into * account factors such as battery aging and temperature dependency. * *
Property Config: *
Required Permission: *
If the vehicle has multiple charging ports, this property will return all possible * connector types that can be used by at least one charging port on the vehicle. * *
Property Config: *
Required Permission: *
This property communicates the location of the fuel door on the vehicle. This property * will not be implemented for electric vehicles. That is, if {@link #INFO_FUEL_TYPE} only * contains {@link FuelType#ELECTRIC}, this property will not be implemented. For EVs, see * {@link #INFO_EV_PORT_LOCATION} or {@link #INFO_MULTI_EV_PORT_LOCATIONS}. * *
Property Config: *
Required Permission: *
This property communicates the location of the charging port on the EV. If there are * multiple ports on the vehicle, this will communicate the port that enables the fastest * charging on the vehicle. See {@link #INFO_MULTI_EV_PORT_LOCATIONS} to get information on all * port locations. * *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
The only area ID listed in {@link android.car.hardware.CarPropertyConfig#getAreaIds} for * {@code INFO_DRIVER_SEAT} will be {@code 0}. * *
Property Config: *
Required Permission: *
Exterior dimensions defined in the {@link CarPropertyValue#getValue()} {@code Integer[]}: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
When the vehicle is moving forward, {@code PERF_VEHICLE_SPEED} is positive and negative * when the vehicle is moving backward. Also, this value is independent of gear value ({@link * #CURRENT_GEAR} or {@link #GEAR_SELECTION}). For example, if {@link #GEAR_SELECTION} is * {@link VehicleGear#GEAR_NEUTRAL}, {@code PERF_VEHICLE_SPEED} is positive when the vehicle is * moving forward, negative when moving backward, and zero when not moving. * *
Property Config: *
Required Permission: *
Some cars display a slightly slower speed than the actual speed. This is * usually displayed on the speedometer. * *
Property Config: *
Required Permission: *
Left is negative. * *
This property is independent of the angle of the steering wheel. This property * communicates the angle of the front wheels with respect to the vehicle, not the angle of the * steering wheel. * *
Property Config: *
Required Permission: *
Left is negative. * *
This property is independent of the angle of the steering wheel. This property * communicates the angle of the rear wheels with respect to the vehicle, not the angle of the * steering wheel. * *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Returns the status of the oil level for the vehicle. See {@code VehicleOilLevel} for * possible values for {@code ENGINE_OIL_LEVEL}. * *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
If true, the vehicle may automatically shut off the engine when it is not needed and then * automatically restart it when needed. * *
Property Config: *
Required Permission: *
Bit flag property to relay information on whether an impact has occurred on a particular * side of the vehicle as described through the {@link * android.car.hardware.property.ImpactSensorLocation} enum. As a bit flag property, this * property can be set to multiple ORed together values of the enum when necessary. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which bit flags * from {@link android.car.hardware.property.ImpactSensorLocation} are supported. * *
Property Config: *
Required Permission: *
The first element in the array is a reset count. A reset indicates * previous tick counts are not comparable with this and future ones. Some * sort of discontinuity in tick counting has occurred. * *
The next four elements represent ticks for individual wheels in the * following order: front left, front right, rear right, rear left. All * tick counts are cumulative. Tick counts increment when the vehicle * moves forward, and decrement when vehicles moves in reverse. The ticks * should be reset to 0 when the vehicle is started by the user. * *
configArray is used to indicate the micrometers-per-wheel-tick values and * which wheels are supported. Each micrometers-per-wheel-tick value is static (i.e. will not * update based on wheel's status) and a best approximation. For example, if a vehicle has * multiple rim/tire size options, the micrometers-per-wheel-tick values are set to those for * the typically expected rim/tire size. configArray is set as follows: * *
NOTE: If a wheel is not supported, its value is always 0. * *
Property Config: *
Required Permission: *
This property communicates the current amount of fuel remaining in the vehicle in * milliliters. This property will not be implemented for electric vehicles. That is, if {@link * #INFO_FUEL_TYPE} only contains {@link FuelType#ELECTRIC}, this property will not be * implemented. For EVs, see {@link #EV_BATTERY_LEVEL}. * *
This property's value will not exceed {@link #INFO_FUEL_CAPACITY}. * *
Property Config: *
Required Permission: *
This property communicates whether the fuel door on the vehicle is open or not. This * property will not be implemented for electric vehicles. That is, if {@link #INFO_FUEL_TYPE} * only contains {@link FuelType#ELECTRIC}, this property will not be implemented. For EVs, see * {@link #EV_CHARGE_PORT_OPEN}. * *
Property Config: *
Required Permissions: *
Returns the current battery level in {@link android.car.VehicleUnit#WATT_HOUR}, if EV or * hybrid. This value will not exceed {@link #EV_CURRENT_BATTERY_CAPACITY}. To calculate the * battery percentage, use: * ({@link #EV_BATTERY_LEVEL}/{@link #EV_CURRENT_BATTERY_CAPACITY})*100. * *
Property Config: *
Required Permission: *
Returns the actual value of battery capacity in {@link android.car.VehicleUnit#WATT_HOUR}, * if EV or hybrid. This property captures the real-time usable battery capacity taking into * account factors such as battery aging and temperature dependency. Therefore, this value might * be different from {@link #INFO_EV_BATTERY_CAPACITY} because {@link #INFO_EV_BATTERY_CAPACITY} * returns the nominal battery capacity from when the vehicle was new. * *
Property Config: *
Required Permission: *
If the vehicle has multiple charging ports, this property will return true if any of the * charge ports are open. * *
Property Config: *
Required Permissions: *
If the vehicle has multiple charging ports, this property will return true if any of the * charge ports are connected. * *
Property Config: *
Required Permission: *
Positive rate indicates battery is being charged, and Negative rate indicates battery * being discharged. * *
Property Config: *
Required Permission: *
Range remaining accounts for all energy sources in a vehicle. For example, a hybrid car's * range will be the sum of the ranges based on fuel and battery. * *
Property Config: *
Required Permissions: *
Exposes the temperature of the battery in an EV. If multiple batteries exist in the EV, or * multiple temperature sensors exist, this property will be set to a meaningful weighted * average that best represents the overall temperature of the battery system. * *
Property Config: *
Required Permissions: *
For each area ID listed in {@link android.car.hardware.CarPropertyConfig#getAreaIds}, the * corresponding {@link android.car.hardware.property.AreaIdConfig#getMinValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the OEM recommended tire * pressure range for that tire. * *
Property Config: *
Required Permission: *
For each area ID listed in {@link android.car.hardware.CarPropertyConfig#getAreaIds}, the * corresponding {@code CRITICALLY_LOW_TIRE_PRESSURE} will be less than or equal the {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} of {@link #TIRE_PRESSURE} for the * same area ID. * *
Property Config: *
Required Permission: *
See {@link VehicleGear} for gear value enum. * *
configArray represents the list of supported gears for the vehicle. For example, * configArray for an EV vehicle is set as follows: * *
Example automatic transmission configArray: * *
Example manual transmission configArray: * *
Property Config: *
Required Permission: *
{@code CURRENT_GEAR}'s value may not match that of {@link * VehiclePropertyIds#GEAR_SELECTION}. For example, if the {@link * VehiclePropertyIds#GEAR_SELECTION} is {@link VehicleGear#GEAR_DRIVE} in a vehicle with an * automatic transmission, the {@code CURRENT_GEAR} will be one of {@link * VehicleGear#GEAR_FIRST}, {@link VehicleGear#GEAR_SECOND}, etc, which reflects the actual gear * the transmission is currently running in. * *
configArray represents the list of supported {@link VehicleGear}s for {@code * CURRENT_GEAR}. For example, the configArray for an EV vehicle is set as follows: * *
Example automatic transmission configArray: * *
Example manual transmission configArray: * *
Property Config: *
Required Permission: *
{@code PARKING_BRAKE_ON} is true indicates that the car's parking brake is currently * engaged. False implies that the car's parking brake is currently disengaged. * *
Property Config: *
Required Permission: *
{@code PARKING_BRAKE_AUTO_APPLY} is true indicates that the car's automatic parking brake * feature is currently enabled. False indicates that the car's automatic parking brake feature * is currently disabled. * *
This property is often confused with {@link #PARKING_BRAKE_ON}. The difference is that * {@link #PARKING_BRAKE_ON} describes whether the actual parking brake is currently on/off, * whereas {@code PARKING_BRAKE_AUTO_APPLY} describes whether the feature of automatic parking * brake is enabled/disabled, and does not describe the current state of the actual parking * brake. * *
Property Config: *
Required Permission: *
Returns the current setting for the regenerative braking level. Larger setting values mean * more energy regenerated from braking while smaller setting values mean less energy * regenerated from braking. 0 means the setting for no regenerative braking. See {@link * android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible values. * *
Property Config: *
Required Permissions: *
For the global area ID, the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} obtained from {@link * android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which enum values from * {@code EvStoppingMode} are supported. {@code EvStoppingMode} may be extended to include more * states in the future. * *
Property Config: *
Required Permissions: *
{@code FUEL_LEVEL_LOW} corresponds to the low fuel warning on the dashboard. Once {@code * FUEL_LEVEL_LOW} is set, it should not be cleared until more fuel is added to the vehicle. * This property may take into account all fuel sources for a vehicle - for example: *
Property Config: *
Required Permission: *
True indicates that the night mode sensor has detected that the car cabin environment has * low light. * *
Property Config: *
Required Permission: *
See {@code VehicleTurnSignal} for possible values for {@code TURN_SIGNAL_STATE}. * *
Property Config: *
Required Permission: *
See {@link VehicleIgnitionState} for possible values for {@code IGNITION_STATE}. * *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Returns true if ESC is enabled and false if ESC is disabled. When ESC is enabled, a system * in the vehicle should be controlling the tires during instances with high risk of skidding to * actively prevent the same from happening. * *
This property is defined as read_write, but OEMs have the option to implement it as read * only. * *
Property Config: *
Required Permissions: *
Returns the current state of ESC. This property will always return a valid state defined * in {@link android.car.hardware.property.ElectronicStabilityControlState} or {@link * android.car.hardware.property.ErrorState}. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.ElectronicStabilityControlState} and {@link * android.car.hardware.property.ErrorState} are supported. * *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the minimum * temperature setting in Celsius. *
{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the maximum * temperature setting in Celsius. * *
The vehicle may not support setting a continuous range of temperature values in between * the min and max values. * *
Therefore, if the vehicle supports {@link #HVAC_TEMPERATURE_VALUE_SUGGESTION}, the * application should use that property to get a supported value before setting {@code * HVAC_TEMPERATURE_SET}. The application should also use {@link * #HVAC_TEMPERATURE_VALUE_SUGGESTION} for converting the temperature from Celsius to Fahrenheit * and vice versa for this vehicle. * *
Else if the {@link android.car.hardware.CarPropertyConfig#getConfigArray()} is defined, * then it represents the list of valid temperature values that can be set. It also describes a * lookup table to convert the temperature from Celsius to Fahrenheit and vice versa for this * vehicle. * *
The {@code configArray} is set as follows: *
For example, if the vehicle supports temperature values as: *
* [16.0, 16.5, 17.0 ,..., 28.0] in Celsius * [60.5, 61.5, 62.5 ,..., 84.5] in Fahrenheit ** *
The {@code configArray} should be: *
* {@code configArray = {160, 280, 5, 605, 845, 10}} ** *
If the {@code configArray} is defined, applications should not use any other method for * converting temperature values besides {@link #HVAC_TEMPERATURE_VALUE_SUGGESTION}, such as the * standard unit conversion formula of {@code F = (9/5) * C + 32}. Any value set that is not * contained within the list of valid values is considered undefined behavior and may result in * inconsistencies in the value set by the application and the value set in the VHAL. * *
For converting the temperature from Celsius to Fahrenheit use the following: *
* {@code * // Given tempC and configArray * float minTempC = configArray.get(0) / 10f; * float temperatureIncrementCelsius = configArray.get(2) / 10f; * float minTempF = configArray.get(3) / 10f; * float temperatureIncrementFahrenheit = configArray.get(5) / 10f; * // Round to the closest increment * int numIncrements = Math.round((tempC - minTempC) / temperatureIncrementCelsius); * float tempF = temperatureIncrementFahrenheit * numIncrements + minTempF; * } **
For converting the temperature from Fahrenheit to Celsius, use the same method as above * except changing the Celsius values to the relevant Fahrenheit values. * *
Othwerise, if neither {@link #HVAC_TEMPERATURE_VALUE_SUGGESTION} nor the {@code * configArray} are defined, the application should use the standard unit conversion formula of * {@code F = (9/5) * C + 32}. * *
Property Config: *
Required Permission: *
Implement the property to help applications understand the closest supported temperature * value in Celsius or Fahrenheit. *
An application calls * {@link android.car.hardware.property.CarPropertyManager#setProperty(Class, int, int, Object)} * with the requested value and unit for the value. OEMs need to return the suggested values * in {@code floatValues[2]} and {@code floatValues[3]} by * {@link android.car.hardware.property.CarPropertyManager.CarPropertyEventCallback}. * *
For example, when a user uses the voice assistant to set HVAC temperature to 66.2 in * Fahrenheit. * *
First, an application will set this property with the value * [66.2, {@link VehicleUnit#FAHRENHEIT}, 0, 0]. If OEMs suggest to set 19.0 in Celsius * or 66.5 in Fahrenheit for user's request, then car must generate a callback with property * value [66.2, {@link VehicleUnit#FAHRENHEIT}, 19.0, 66.5]. After the voice assistant * gets the callback, it will inform the user and set HVAC temperature to the suggested value. * *
Another example, an application receives 21 Celsius as the current temperature value by * querying {@link VehiclePropertyIds#HVAC_TEMPERATURE_SET}. But the application wants to know * what value is displayed on the car's UI in Fahrenheit. * *
For this, the application sets the property to * [21, {@link VehicleUnit#CELSIUS}, 0, 0]. If the suggested value by the OEM for 21 * Celsius is 70 Fahrenheit, then car must generate a callback with property value * [21, {@link VehicleUnit#CELSIUS}, 21.0, 70.0]. In this case, the application can know * that the value is 70.0 Fahrenheit in the car’s UI. * *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permissions: *
Property Config: *
Required Permission: *
Setting this property to false MAY mark some properties that control individual HVAC * features/subsystems to UNAVAILABLE state. Setting this property to true MAY mark some * properties that control individual HVAC features/subsystems to AVAILABLE state (unless * any/all of them are UNAVAILABLE on their own individual merits). * *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Indicates which units the car is using to display distances to the user. * *
configArray represents the list of supported units for {@code * DISTANCE_DISPLAY_UNITS}. Here is an example configArray: *
Property Config: *
Required Permissions: *
Indicates which units the car is using to display fuel volume to the user. * *
configArray represents the list of supported units for {@code * FUEL_VOLUME_DISPLAY_UNITS}. Here is an example configArray: *
Property Config: *
Required Permissions: *
Indicates which units the car is using to display tire pressure to the user. * *
configArray represents the list of supported units for {@code * TIRE_PRESSURE_DISPLAY_UNITS}. Here is an example configArray: *
Property Config: *
Required Permissions: *
Indicates which units the vehicle is using to display EV battery information to the user. * *
configArray represents the list of supported units for {@code * EV_BATTERY_DISPLAY_UNITS}. Here is an example configArray: *
Property Config: *
Required Permissions: *
Indicates type of units the vehicle is using to display speed to user. * *
configArray represents the list of supported units for {@code * VEHICLE_SPEED_DISPLAY_UNITS}. Here is an example configArray: *
Property Config: *
Required Permissions: *
Indicates type of units the car is using to display fuel consumption information to user. * *
{@code true} indicates units are distance over volume such as MPG. * *
{@code false} indicates units are volume over distance such as L/100KM. * *
Property Config: *
Required Permissions: *
Property Config: *
Required Permission: *
Not exposed through {@link android.car.hardware.property.CarPropertyManager}. * *
This property is not supported. * * @deprecated use {@link android.car.hardware.power.CarPowerManager} instead. */ @Deprecated @RequiresPermission(Car.PERMISSION_CAR_POWER) public static final int AP_POWER_STATE_REQ = 289475072; /** * Property to report power state of application processor. * *
Not exposed through {@link android.car.hardware.property.CarPropertyManager}. * *
This property is not supported. * * @deprecated use {@link android.car.hardware.power.CarPowerManager} instead. */ @Deprecated @RequiresPermission(Car.PERMISSION_CAR_POWER) public static final int AP_POWER_STATE_REPORT = 289475073; /** * Property to report bootup reason for the current power on. * *
Not exposed through {@link android.car.hardware.property.CarPropertyManager}. * *
This property is not supported. * * @deprecated use {@link android.car.hardware.power.CarPowerManager} instead. */ @Deprecated @RequiresPermission(Car.PERMISSION_CAR_POWER) public static final int AP_POWER_BOOTUP_REASON = 289409538; /** * Property to represent brightness of the display. * *
Not exposed through {@link android.car.hardware.property.CarPropertyManager}. * *
This property is not supported. * * @deprecated use {@link android.car.hardware.power.CarPowerManager} instead. */ @Deprecated @RequiresPermission(Car.PERMISSION_CAR_POWER) public static final int DISPLAY_BRIGHTNESS = 289409539; /** * Property to represent brightness of the displays which are controlled separately. * *
Not exposed through {@link android.car.hardware.property.CarPropertyManager}. * *
This property is not supported. * * @deprecated use {@link android.car.hardware.power.CarPowerManager} instead. */ @Deprecated @RequiresPermission(Car.PERMISSION_CAR_POWER) public static final int PER_DISPLAY_BRIGHTNESS = 289475076; /** * Valet mode enabled * *
This property allows the user to enable/disable valet mode in their vehicle. Valet mode is * a privacy and security setting that prevents an untrusted driver to access more private areas * in the vehicle, such as the glove box or the trunk(s). * *
This property is defined as read_write, but OEMs have the option to implement it as read * only. * *
Property Config: *
Required Permissions: *
This property allows the user to turn on/off the HUD for their seat. * *
Each HUD in the vehicle will be assigned to the seat that is intended to use it. For * example, if there is a single HUD in the vehicle that is used by the driver so that they no * longer need to continuously look at the instrument cluster, then this property will be * defined with a single area ID that is equal to the driver's seat area ID. * *
Property Config: *
Required Permissions: *
Not exposed through {@link android.car.hardware.property.CarPropertyManager}. * *
This property is not supported. * * @deprecated car service internal use only. */ @Deprecated public static final int HW_KEY_INPUT = 289475088; /** * Door position. * *
This property is not in any particular unit but in a specified range of relative * positions. * *
{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the door's * position when closed. This value will be 0 *
{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the door's * position when fully open. * *
All integers between the min and max values are supported and indicate a transition state * between the closed and fully open positions. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative movement * speeds. * *
Positive values mean the door is opening and negative values mean the door is closing. * Larger integers, either positive or negative, indicate a faster speed. Once the door reaches * the positional limit, the value resets to 0. When this property's value is 0, that means * there is no movement currently occurring. * *
See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. * All integers between min and max value are supported. * *
Property Config: *
Required Permission: *
True indicates that the door is locked. * *
Property Config: *
Required Permission: *
Returns true if the door child lock feature is enabled and false if it is disabled. * If enabled, the door is unable to be opened from the inside. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative * positions. * *
{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the mirror's * position when tilted completely downwards. *
{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the mirror's * position when tilted completely upwards. *
0 indicates the mirror is not tilted in either direction. * *
All integers between the min and max values are supported and indicate a transition state * between the completely downwards and completely upwards positions. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative movement * speeds. * *
Positive values mean the mirror is tilting up and negative values mean the mirror is * tilting down. Larger integers, either positive or negative, indicate a faster speed. Once the * mirror reaches the positional limit, the value resets to 0. When this property's value is 0, * that means there is no movement currently occurring. * *
See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. * All integers between min and max value are supported. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative * positions. * *
{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the mirror's * position when tilted completely to the left. *
{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the mirror's * position when tilted completely to the right. *
0 indicates the mirror is not tilted in either direction. * *
All integers between the min and max values are supported and indicate a transition state * between the extreme left and extreme right positions. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative movement * speeds. * *
Positive values mean the mirror is tilting to the right and negative values mean the * support is tilting to the left. Larger integers, either positive or negative, indicate a * faster speed. Once the mirror reaches the positional limit, the value resets to 0. When this * property's value is 0, that means there is no movement currently occurring. * *
See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. * All integers between min and max value are supported. * *
Property Config: *
Required Permission: *
True indicates all mirror positions are locked and not changeable. * *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
This property is true when the feature for automatically folding the vehicle's mirrors * (for example, when the mirrors fold inward automatically when one exits and locks the * vehicle) is enabled. * *
Property Config: *
Required Permission: *
This property is true when the feature for automatically tilting the vehicle's mirrors * (for example, when the mirrors tilt downward automatically when one reverses the vehicle) is * enabled. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative * positions. * *
{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the glove box's * position when closed. This value will be 0. *
{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the glove box's * position when fully open. * *
All integers between the min and max values are supported and indicate a transition state * between the closed and fully open positions. * *
The supported area IDs match the seat(s) by which the glove box is intended to be used * (e.g.) if the front right dashboard has a glove box embedded in it, then the area ID should * be {@link VehicleAreaSeat#SEAT_ROW_1_RIGHT}). * *
Property Config: *
Required Permission: *
If {@code true}, the glove box is locked. If {@code false}, the glove box is unlocked. * *
The supported area IDs match the seat(s) by which the glove box is intended to be used * (e.g. if the front right dashboard has a glove box embedded in it, then the area ID will be * {@link android.car.VehicleAreaSeat#SEAT_ROW_1_RIGHT}). * *
Property Config: *
Required Permission: *
This parameter selects the memory preset to use to select the seat position. The {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} is always 0, and the {@link * android.car.hardware.property.AreaIdConfig#getMaxValue()} determines the number of seat * positions available (i.e. numSeatPresets - 1). * *
Property Config: *
Required Permission: *
This setting allows the user to save the current seat position settings into the selected * preset slot. The {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} for each * seat position must match the {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} * for {@link #SEAT_MEMORY_SELECT}. * *
Property Config: *
Required Permission: *
True indicates belt is buckled. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative * positions. * *
{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat belt * shoulder anchor's lowest position. *
{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat belt * shoulder anchor's highest position. * *
All integers between the min and max values are supported and indicate a transition state * between the lowest and highest positions. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative movement * speeds. * *
Positive values mean the seat belt's shoulder anchor is moving up and negative values mean * the seat belt's shoulder anchor is moving down. Larger integers, either positive or negative, * indicate a faster speed. Once the seat belt's shoulder anchor reaches the positional limit, * the value resets to 0. When this property's value is 0, that means there is no movement * currently occurring. * *
See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. * All integers between min and max value are supported. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative * positions. * *
{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat's * rearward-most linear position. *
{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat's * forward-most linear position. * *
All integers between the min and max values are supported and indicate a transition state * between the forward most and rearward most positions. * *
Property Config: *
Required Permission: *
This property moves the entire seat forward/backward in the direction it's facing. * *
This property is not in any particular unit but in a specified range of relative movement * speeds. * *
Positive values mean the seat is moving forward and negative values mean the seat is * moving backward. Larger integers, either positive or negative, indicate a faster speed. Once * the seat reaches the positional limit, the value resets to 0. When this property's value is * 0, that means there is no movement currently occurring. * *
See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. * All integers between min and max value are supported. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative * positions. * *
{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat * backrest's full recline position w.r.t the actuator at the bottom of the seat (see {@link * #SEAT_BACKREST_ANGLE_1_MOVE} for additional details). *
{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat * backrest's most upright/forward position w.r.t the actuator at the bottom of the seat (see * {@link #SEAT_BACKREST_ANGLE_1_MOVE} for additional details). * *
All integers between the min and max values are supported and indicate a transition state * between the forward most and rearward most positions. * *
Property Config: *
Required Permission: *
This property moves the seat backrest along the axis of rotation defined by the actuator * closest to the bottom of the seat. This is the actuator that moves the seat upright/forward * or into recline as seen in most conventional vehicles. * *
This property is not in any particular unit but in a specified range of relative movement * speeds. * *
Positive values mean the seat is angling forward and negative values mean the seat is * reclining backward. Larger integers, either positive or negative, indicate a faster speed. * Once the seat reaches the positional limit, the value resets to 0. When this property's value * is 0, that means there is no movement currently occurring. * *
See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. * All integers between min and max value are supported. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative * positions. * *
{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat * backrest's full recline position w.r.t the next actuator in the backrest from the one at the * bottom of the seat (see {@link #SEAT_BACKREST_ANGLE_2_MOVE} for more details). *
{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat * backrest's most upright/forward position w.r.t the next actuator in the backrest from the one * at the bottom of the seat (see {@link #SEAT_BACKREST_ANGLE_2_MOVE} for more details). * *
All integers between the min and max values are supported and indicate a transition state * between the forward most and rearward most positions. * *
Property Config: *
Required Permission: *
This property will be implemented if there exists an additional actuator in the seat * backrest besides the one at the very bottom of the backrest, which is covered by {@link * #SEAT_BACKREST_ANGLE_1_MOVE}. This property will move the backrest along the axis of rotation * defined by this additional actuator. It can be assumed that this actuator is closer to the * headrest than the one defined by {@link #SEAT_BACKREST_ANGLE_1_MOVE}. * *
This property is not in any particular unit but in a specified range of relative movement * speeds. * *
Positive values mean the seat is angling forward and negative values mean the seat is * reclining backward. Larger integers, either positive or negative, indicate a faster speed. * Once the seat reaches the positional limit, the value resets to 0. When this property's value * is 0, that means there is no movement currently occurring. * *
See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. * All integers between min and max value are supported. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative * positions. * *
{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat's * lowest position. *
{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat's * highest position. * *
All integers between the min and max values are supported and indicate a transition state * between the lowest and highest positions. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative movement * speeds. * *
Positive values mean the seat is moving up and negative values mean the seat is moving * down. Larger integers, either positive or negative, indicate a faster speed. Once the seat * reaches the positional limit, the value resets to 0. When this property's value is 0, that * means there is no movement currently occurring. * *
See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. * All integers between min and max value are supported. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative * positions. * *
{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat's * shallowest position. This corresponds to the smallest distance between the front edge of the * seat and the seat backrest. *
{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat's * deepest position. This corresponds to the largest distance between the front edge of the seat * and the seat backrest. * *
All integers between the min and max values are supported and indicate a transition state * between the shallowest and deepest positions. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative movement * speeds. * *
Positive values mean the distance between the seat's front edge and the back of the seat * is increasing, thus making the seat deeper. Negative values mean the distance between the * seat's front edge and the back of the seat is decreasing, thus making the seat shallower. * Larger integers, either positive or negative, indicate a faster speed. Once the seat depth * reaches its limit, the value resets to 0. When this property's value is 0, that means there * is no movement currently occurring. * *
See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. * All integers between min and max value are supported. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative * positions. * *
{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat * bottom's lowest angular position. This corresponds to the seat's front edge at its lowest * possible position relative to the rear end of the seat. *
{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat * bottom's highest angular position. This corresponds to the seat's front edge at its highest * possible position relative to the rear end of the seat. * *
All integers between the min and max values are supported and indicate a transition state * between the lowest and highest positions. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative movement * speeds. * *
Positive values mean the seat cushion is tilting upward such that the seat cushion's front * edge is higher than the rear end of the seat cushion. Negative values mean the seat cushion * is tilting downward such that the seat cushion's front edge is lower than the rear end of the * seat cushion. Larger integers, either positive or negative, indicate a faster speed. Once the * seat cushion reaches the positional limit, the value resets to 0. When this property's value * is 0, that means there is no movement currently occurring. * *
See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. * All integers between min and max value are supported. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative * positions. * *
{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat lumbar * support's rearward most position (i.e. least supportive position). *
{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat lumbar * support's forward most position (i.e. most supportive position). * *
All integers between the min and max values are supported and indicate a transition state * between the forward most and rearward most positions. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative movement * speeds. * *
Positive values mean the lumbar support is moving forward towards the front of the seat * and negative values mean the lumbar support is moving backward away from the front of the * seat. Larger integers, either positive or negative, indicate a faster speed. Once the lumbar * support reaches the positional limit, the value resets to 0. When this property's value is 0, * that means there is no movement currently occurring. * *
See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. * All integers between min and max value are supported. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative * positions. * *
{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat lumbar * side support's thinnest position (i.e most support). *
{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat lumbar * side support's widest position (i.e least support). * *
All integers between the min and max values are supported and indicate a transition state * between the thinnest and widest positions. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative movement * speeds. * *
Positive values mean the lumbar side support is getting wider (i.e. less support) and * negative values mean the lumbar side support is getting thinner (i.e. more support). Larger * integers, either positive or negative, indicate a faster speed. Once the lumbar side support * reaches the positional limit, the value resets to 0. When this property's value is 0, that * means there is no movement currently occurring. * *
See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. * All integers between min and max value are supported. * *
Property Config: *
Required Permission: *
Not exposed through {@link android.car.hardware.property.CarPropertyManager}. * *
This property is not supported. * * @deprecated because it is defined as type {@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}, * which means all seats use the same value. Use {@link #SEAT_HEADREST_HEIGHT_POS_V2} instead * which fixes this issue by being defined as type * {@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT}. */ @Deprecated @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) public static final int SEAT_HEADREST_HEIGHT_POS = 289409941; /** * Headrest height position. * *
This property is not in any particular unit but in a specified range of relative * positions. * *
The {@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat * headrest's shortest position. *
The {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat * headrest's tallest position. * *
All integers between the min and max values are supported and indicate a transition state * between the shortest and tallest positions. * *
{@link android.car.hardware.CarPropertyConfig#getAreaIds()} specifies which seats are * supported. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative movement * speeds. * *
Positive values mean the headrest is moving up and negative values mean the headrest is * moving down. Larger integers, either positive or negative, indicate a faster speed. Once the * headrest reaches the positional limit, the value resets to 0. When this property's value is * 0, that means there is no movement currently occurring. * *
See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. * All integers between min and max value are supported. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative * positions. * *
The {@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat * headrest's full recline position. *
The {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat * headrest's most upright/forward position. * *
All integers between the min and max values are supported and indicate a transition state * between the forward most and rearward most positions. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative movement * speeds. * *
Positive values mean the headrest is moving upright/forward and negative values mean the * headrest is reclining. Larger integers, either positive or negative, indicate a faster speed. * Once the headrest reaches the positional limit, the value resets to 0. When this property's * value is 0, that means there is no movement currently occurring. * *
See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. * All integers between min and max value are supported. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative * positions. * *
The {@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat * headrest's rearward-most linear position. *
The {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat * headrest's forward-most linear position. * *
All integers between the min and max values are supported and indicate a transition state * between the forward most and rearward most positions. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative movement * speeds. * *
Positive values mean the headrest is moving forward towards the front of the seat and * negative values mean the headrest is moving backward away from the front of the seat. Larger * integers, either positive or negative, indicate a faster speed. Once the headrest reaches the * positional limit, the value resets to 0. When this property's value is 0, that means there is * no movement currently occurring. * *
See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. * All integers between min and max value are supported. * *
Property Config: *
Required Permission: *
{@code SEAT_FOOTWELL_LIGHTS_STATE} reflects the current state of the lights at any point * in time. This is different from the function of {@link #SEAT_FOOTWELL_LIGHTS_SWITCH} which * represents the position of the switch controlling the lights. Therefore, {@code * SEAT_FOOTWELL_LIGHTS_STATE} may not match the value of {@link #SEAT_FOOTWELL_LIGHTS_SWITCH} * (e.g. {@link #SEAT_FOOTWELL_LIGHTS_SWITCH}={@code VehicleLightSwitch#STATE_AUTOMATIC} and * {@code SEAT_FOOTWELL_LIGHTS_STATE}={@code VehicleLightState#STATE_ON}). * *
This property will only be implemented if {@code SEAT_FOOTWELL_LIGHTS_STATE}'s value may * be different from that of {@link #CABIN_LIGHTS_STATE}. * *
For each supported area ID, the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} obtained from {@link * android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which enum values from * {@code VehicleLightState} are supported. * *
Property Config: *
Required Permission: *
{@code SEAT_FOOTWELL_LIGHTS_SWITCH} represents the position of the switch controlling the * lights. This is different from the function of {@link #SEAT_FOOTWELL_LIGHTS_STATE} which * reflects the current state of the lights at any point in time. Therefore, {@code * SEAT_FOOTWELL_LIGHTS_SWITCH} may not match the value of {@link #SEAT_FOOTWELL_LIGHTS_STATE} * (e.g. {@code SEAT_FOOTWELL_LIGHTS_SWITCH}={@code VehicleLightSwitch#STATE_AUTOMATIC} and * {@link #SEAT_FOOTWELL_LIGHTS_STATE}={@code VehicleLightState#STATE_ON}). * *
This property will only be implemented if {@code SEAT_FOOTWELL_LIGHTS_SWITCH}'s value may * be different from that of {@link #CABIN_LIGHTS_SWITCH}. * *
For each supported area ID, the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} obtained from {@link * android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which enum values from * {@code VehicleLightSwitch} are supported. * *
Property Config: *
Required Permission: *
If true, the seat will automatically adjust to make it easier for the occupant to enter * and exit the vehicle. Each area ID maps to the seat that the user is trying to enter/exit * with the help of the easy access feature. * *
Property Config: *
Required Permission: *
If true, it means the seat's airbags are enabled, and if triggered (e.g. by a crash), they * will deploy. If false, it means the seat's airbags are disabled, and they will not deploy * under any circumstance. This property does not indicate if the airbags are deployed or not. * *
Property Config: *
Required Permission: *
Bit flag property to relay information on which airbags have been deployed in the vehicle * at each seat, vs which ones are currently still armed. When SEAT_AIRBAG_ENABLED is set to * false at a particular areaId, this property will be UNAVAILABLE at that areaId. * *
Enums apply to each seat, not the global vehicle. For example, * {@link android.car.hardware.property.VehicleAirbagLocation#CURTAIN} at the driver seat areaId * represents whether the driver side curtain airbag has been deployed. Multiple bit flags can * be set to indicate that multiple different airbags have been deployed for the seat. * *
For each seat area ID, the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.VehicleAirbagLocation} are supported. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative * positions. * *
The {@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat * hipside support's thinnest position (i.e. most support). *
The {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat * hipside support's widest position (i.e. least support). * *
All integers between the min and max values are supported and indicate a transition state * between the thinnest and widest positions. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative movement * speeds. * *
Positive values means the seat cushion side support is growing wider (i.e. less support) * and negative values means the seat cushion side support is growing thinner (i.e. more * support). Larger integers, either positive or negative, indicate a faster speed. Once the * seat cushion side support reaches the positional limit, the value resets to 0. When this * property's value is 0, that means there is no movement currently occurring. * *
See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. * All integers between min and max value are supported. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative * positions. * *
The {@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat * lumbar support's lowest position. *
The {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat * lumbar support's highest position. * *
All integers between the min and max values are supported and indicate a transition state * between the lowest and highest positions. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative movement * speeds. * *
Positive values mean the lumbar support is moving up and negative values mean the lumbar * support is moving down. Larger integers, either positive or negative, indicate a faster * speed. Once the lumbar support reaches the positional limit, the value resets to 0. When this * property's value is 0, that means there is no movement currently occurring. * *
See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. * All integers between min and max value are supported. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative * positions. * *
{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the normal seat * position. *
{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat's * position in full walk-in mode. * *
All integers in between the min and max values are supported and indicate a transition * state between the normal and walk-in positions. The area IDs match the seats that actually * move when the walk-in feature activates. * *
Property Config: *
Required Permission: *
Property to relay information on whether the seat belt pretensioner has been deployed for * a particular seat due to a collision. This is different from the regular seat belt tightening * system that continuously adds tension to the seat belts so that they fit snugly around the * person sitting in the seat, nor is it the seat belt retractor system that locks the seat belt * in place during sudden brakes or when the user jerks the seat belt. * *
If this property is dependant on the state of other properties, and if those properties * are currently in the state that doesn't support this property, reading this property will * throw {@link android.car.hardware.property.PropertyNotAvailableException}. * *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative * positions. * *
{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the window's * position when closed/fully open out of plane. If the window cannot open out of plane, then * {@link android.car.hardware.property.AreaIdConfig#getMinValue()} is the position of the * window when fully closed and must be 0. If the window can open out of plane, {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the window is fully open * in its position out of plane and will be a negative value. *
{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the window's * position when fully open. * *
All integers in between the min and max values are supported and indicate a transition * state between the closed and fully open positions. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative movement * speeds. * *
Positive values mean the window is either closing from its out of plane position (if such * a position is supported by the window), or is opening in plane. Negative values mean the * window is closing in plane, or opening in its out of plane position (if the position is * supported). Larger integers, either positive or negative, indicate a faster speed. Once the * window reaches the positional limit, the value resets to 0. When this property's value is 0, * that means there is no movement currently occurring. * *
See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. * All integers between min and max value are supported. * *
Property Config: *
Required Permission: *
True indicates that the window is child-locked. * *
Property Config: *
Required Permission: *
Returns the instantaneous time period for 1 full cycle of the windshield wipers in {@link * android.car.VehicleUnit#MILLI_SECS}. A full cycle is defined as a wiper moving from and * returning to its rest position. The {@link * android.car.hardware.property.AreaIdConfig#getMaxValue()} specifies the longest wiper period. * The {@link android.car.hardware.property.AreaIdConfig#getMinValue()} is always 0. When an * intermittent wiper setting is selected, this property value will be set to 0 during the * "pause" phase of the intermittent wiping. * *
Property Config: *
Required Permission: *
Returns the current state of the windshield wipers. The value of {@code * WINDSHIELD_WIPERS_STATE} may not match the value of {@link #WINDSHIELD_WIPERS_SWITCH}. (e.g. * {@code #WINDSHIELD_WIPERS_STATE} = {@link * android.car.hardware.property.WindshieldWipersState#ON} and {@link * #WINDSHIELD_WIPERS_SWITCH} = {@link * android.car.hardware.property.WindshieldWipersSwitch#AUTO}). * *
If {@code #WINDSHIELD_WIPERS_STATE} = {@link * android.car.hardware.property.WindshieldWipersState#ON} and {@link #WINDSHIELD_WIPERS_PERIOD} * is implemented, then {@link #WINDSHIELD_WIPERS_PERIOD} will reflect the time period of 1 * full cycle of the wipers. * *
For each supported area ID, the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.WindshieldWipersState} are supported. * *
Property Config: *
Required Permission: *
Represents the position of the switch controlling the windshield wipers. The value of * {@code WINDSHIELD_WIPERS_SWITCH} may not match the value of {@link #WINDSHIELD_WIPERS_STATE} * (e.g. {@code WINDSHIELD_WIPERS_SWITCH} = {@link * android.car.hardware.property.WindshieldWipersSwitch#AUTO} and {@link * #WINDSHIELD_WIPERS_STATE} = WindshieldWipersState#ON). * *
For each supported area ID, the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which values * from {@link android.car.hardware.property.WindshieldWipersSwitch} are supported. * *
This property is defined as read_write, but OEMs have the option to implement it as read * only. * *
Property Config: *
Required Permissions: *
This property is not in any particular unit but in a specified range of relative * positions. * *
{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the steering * wheel's position when closest to the driver. *
{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the steering * wheel's position when farthest from the driver. * *
All integers in between the min and max values are supported and indicate a transition * state between the closest and farthest positions. * *
Property Config: *
Required Permission: *
Returns the speed and direction, either towards or away from the driver, that the * steering wheel is moving in. This property is not in any particular unit but in a specified * range of relative movement speeds. * *
Positive values mean the steering wheel is moving away from the driver and negative values * mean the steering wheel is moving towards the driver. Larger integers, either positive or * negative, indicate a faster speed. Once the steering wheel reaches the positional limit, the * value resets to 0. When this property's value is 0, that means there is no movement currently * occurring. * *
See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. * All integers between min and max value are supported. * *
Property Config: *
Required Permission: *
This property is not in any particular unit but in a specified range of relative * positions. * *
{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the steering * wheel's lowest position. *
{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the steering * wheel's highest position. * *
All integers in between the min and max values are supported and indicate a transition * state between the lowest and highest positions. * *
Property Config: *
Required Permission: *
Returns the speed and direction, either upwards or downwards, that the steering wheel is * moving in. This property is not in any particular unit but in a specified range of relative * movement speeds. * *
Positive values mean moving upwards and negative values mean moving downwards. Larger * integers, either positive or negative, indicate a faster speed. Once the steering wheel * reaches the positional limit, the value resets to 0. When this property's value is 0, that * means there is no movement currently occurring. * *
See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. * All integers between min and max value are supported. * *
Property Config: *
Required Permission: *
Returns true if the steering wheel theft lock feature is enabled and false if it is * disabled. If enabled, the steering wheel will lock automatically to prevent theft in * certain situations. * *
Property Config: *
Required Permission: *
Returns true if the steering wheel is locked. If locked, the steering wheel’s position is * not changeable. * *
Property Config: *
Required Permission: *
Returns true if the steering wheel easy access feature is enabled and false if it is * disabled. If enabled, the driver’s steering wheel will automatically adjust to make it easier * for the driver to enter and exit the vehicle. * *
Property Config: *
Required Permission: *
Not exposed through {@link android.car.hardware.property.CarPropertyManager}. * *
This property is not supported. * * @deprecated use {@link android.car.vms.VmsClientManager} instead. */ @Deprecated @RequiresPermission(anyOf = {Car.PERMISSION_VMS_PUBLISHER, Car.PERMISSION_VMS_SUBSCRIBER}) public static final int VEHICLE_MAP_SERVICE = 299895808; /** * Characterization of inputs used for computing location. * *
This property indicates what (if any) data and sensor inputs are considered by the system * when computing the vehicle's location that is shared with Android through {@link * android.location.LocationManager#GPS_PROVIDER}. * *
The value returned is a collection of bit flags. The bit flags are defined in {@link * LocationCharacterization}. The value will also include exactly * one of {@link LocationCharacterization#DEAD_RECKONED} or {@link * LocationCharacterization#RAW_GNSS_ONLY} among its collection of * bit flags. * *
When this property is not supported, it is assumed that no additional sensor inputs are * fused into the GNSS updates provided through {@link * android.location.LocationManager#GPS_PROVIDER}. That is unless otherwise specified through * other {@link android.location.LocationManager} APIs. * *
Property Config: *
Required Permission: *
Each individual sensor is identified by its unique {@link AreaIdConfig#getAreaId()} and * returns the sensor's position formatated as [x, y, z] where: * *
Property Config: *
Required Permission: *
Each individual sensor is identified by its {@link AreaIdConfig#getAreaId()} and returns * the sensor's orientation formatted as [qw, qx, qy, qz] where: * *
This assumes each sensor uses the same axes conventions as Android Automotive. * *
Property Config: *
Required Permission: *
Each individual sensor is identified by its {@link AreaIdConfig#getAreaId()} and returns * the sensor's field of view formatted as [horizontal, vertical] where: * *
This assumes each sensor uses the same axes conventions as Android Automotive. * *
Property Config: *
Required Permission: *
Each individual sensor is identified by its {@link AreaIdConfig#getAreaId()} and returns * the sensor's detection range formatted as [minimum, maximum] where: * *
Property Config: *
Required Permission: *
For ultrasonic sensors that only support readings within a specific range. For example, if * an ultrasonic sensor detects an object at 700mm, but can only report that an object has been * detected between 500mm and 1000mm. * *
Each individual sensor is identified by its {@link AreaIdConfig#getAreaId()} and returns * the sensor's supported ranges formatted as [range_min_1, range_max_1, range_min_2, * range_max_2, ...] where: * *
For example, if an ultrasonic sensor supports the ranges 150mm to 499mm, 500mm to 999mm, * and 1000mm to 1500mm, then the property should be set to: *
If this property is not defined, all the values within the * {@link #ULTRASONICS_SENSOR_DETECTION_RANGE} for the specified sensor are assumed to be * supported. * *
Property Config: *
Required Permission: *
Each individual sensor is identified by its {@link AreaIdConfig#getAreaId()} and returns * the sensor's measured distance formatted as [distance, distance_error] where: * *
If no object is detected, an empty vector will be returned. If distance_error is not * available then an array of only the measured distance will be returned. * *
Property Config: *
Required Permission: *
Not exposed through {@link android.car.hardware.property.CarPropertyManager}. * *
This property is not supported. * * @deprecated use {@link android.car.diagnostic.CarDiagnosticManager} instead. */ @Deprecated @RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_READ_ALL) public static final int OBD2_LIVE_FRAME = 299896064; /** * OBD2 Freeze Frame Sensor Data. * *
Not exposed through {@link android.car.hardware.property.CarPropertyManager}. * *
This property is not supported. * * @deprecated use {@link android.car.diagnostic.CarDiagnosticManager} instead. */ @Deprecated @RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_READ_ALL) public static final int OBD2_FREEZE_FRAME = 299896065; /** * OBD2 Freeze Frame Information. * *
Not exposed through {@link android.car.hardware.property.CarPropertyManager}. * *
This property is not supported. * * @deprecated use {@link android.car.diagnostic.CarDiagnosticManager} instead. */ @Deprecated @RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_READ_ALL) public static final int OBD2_FREEZE_FRAME_INFO = 299896066; /** * OBD2 Freeze Frame Clear. * *
Not exposed through {@link android.car.hardware.property.CarPropertyManager}. * *
This property is not supported. * * @deprecated use {@link android.car.diagnostic.CarDiagnosticManager} instead. */ @Deprecated @RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_CLEAR) public static final int OBD2_FREEZE_FRAME_CLEAR = 299896067; /** * Headlights State. * *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
If the car has both front and rear fog lights: *
If the car has only front fog lights: *
If the car has only rear fog lights: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
If the car has both front and rear fog lights: *
If the car has only front fog lights: *
If the car has only rear fog lights: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Property Config: *
Required Permission: *
Returns the current state of the steering wheel lights. This is different from {@link * #STEERING_WHEEL_LIGHTS_SWITCH} which represents the position of the switch controlling * the lights. Therefore, {@code STEERING_WHEEL_LIGHTS_STATE} may not match the value of * {@link #STEERING_WHEEL_LIGHTS_SWITCH} (e.g. {@link #STEERING_WHEEL_LIGHTS_SWITCH}={@code * VehicleLightSwitch#STATE_AUTOMATIC} and {@code STEERING_WHEEL_LIGHTS_STATE}={@code * VehicleLightState#STATE_ON}). * *
This property will only be implemented if {@code STEERING_WHEEL_LIGHTS_STATE}'s value may * be different from that of {@link #CABIN_LIGHTS_STATE}. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} obtained from {@link * android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which enum values from * {@code VehicleLightState} are supported. * *
Property Config: *
Required Permission: *
Returns the position of the switch controlling the steering wheel lights. This is * different from {@link #STEERING_WHEEL_LIGHTS_STATE} which represents the current state of the * steering wheel lights. Therefore, {@code STEERING_WHEEL_LIGHTS_SWITCH} may not match the * value of {@link #STEERING_WHEEL_LIGHTS_STATE} (e.g. {@code STEERING_WHEEL_LIGHTS_SWITCH}= * {@code VehicleLightSwitch#STATE_AUTOMATIC} and {@link #STEERING_WHEEL_LIGHTS_STATE}={@code * VehicleLightState#STATE_ON}). * *
This property will only be implemented if {@code STEERING_WHEEL_LIGHTS_SWITCH}'s value may * be different from that of {@link #CABIN_LIGHTS_SWITCH}. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} obtained from {@link * android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which enum values from * {@code VehicleLightSwitch} are supported. * *
Property Config: *
Required Permission: *
Doesn't require permission because it's not exposed through * {@link android.car.hardware.property.CarPropertyManager}. * *
Property Config: *
Doesn't require permission because it's not exposed through * {@link android.car.hardware.property.CarPropertyManager}. * *
Property Config: *
Doesn't require permission because it's not exposed through * {@link android.car.hardware.property.CarPropertyManager}. * *
Property Config: *
Doesn't require permission because it's not exposed through * {@link android.car.hardware.property.CarPropertyManager}. * *
Property Config: *
Doesn't require permission because it's not exposed through * {@link android.car.hardware.property.CarPropertyManager}. * *
Property Config: *
Doesn't require permission because it's not exposed through * {@link android.car.hardware.property.CarPropertyManager}. * *
Property Config: *
Doesn't require permission because it's not exposed through * {@link android.car.hardware.property.CarPropertyManager}. * *
Property Config: *
Doesn't require permission because it's not exposed through * {@link android.car.hardware.property.CarPropertyManager}. * *
Property Config: *
Doesn't require permission because it's not exposed through * {@link android.car.hardware.property.CarPropertyManager}. * *
Property Config: *
Doesn't require permission because it's not exposed through * {@link android.car.hardware.property.CarPropertyManager}. * *
Property Config: *
Doesn't require permission because it's not exposed through * {@link android.car.hardware.property.CarPropertyManager}. * *
Property Config: *
Doesn't require permission because it's not exposed through * {@link android.car.hardware.property.CarPropertyManager}. * *
Property Config: *
Doesn't require permission because it's not exposed through * {@link android.car.hardware.property.CarPropertyManager}. * *
Property Config: *
Doesn't require permission because it's not exposed through * {@link android.car.hardware.property.CarPropertyManager}. * *
Property Config: *
Doesn't require permission because it's not exposed through * {@link android.car.hardware.property.CarPropertyManager}. * *
Property Config: *
Doesn't require permission because it's not exposed through * {@link android.car.hardware.property.CarPropertyManager}. * *
Property Config: *
Doesn't require permission because it's not exposed through * {@link android.car.hardware.property.CarPropertyManager}. * *
Property Config: *
This value denotes the number of milliseconds that have elapsed since 1/1/1970 UTC. * *
Property Config: *
Required Permission: *
This property indicates the type of ETC(Electronic Toll Collection) card in the vehicle. * If the head unit is aware of an ETC card attached to the vehicle, this property should return * the type of card attached; otherwise, this property should be UNAVAILABLE. The property value * should be one of {@link VehicleElectronicTollCollectionCardType}. * *
Property Config: *
Required Permission: *
This property indicates the status of ETC(Electronic Toll Collection) card in the vehicle. * If the head unit is aware of an ETC card attached to the vehicle, ETC_CARD_STATUS gives that * status of the card; otherwise, this property should be UNAVAILABLE. The property value should * be one of {@link VehicleElectronicTollCollectionCardStatus}. * *
Property Config: *
Required Permission: *
Please refer to the documentation on {@link #FOG_LIGHTS_STATE} for more information. * *
Property Config: *
Required Permission: *
Please refer to the documentation on {@link #FOG_LIGHTS_SWITCH} for more information. * *
Property Config: *
Required Permission: *
Please refer to the documentation on {@link #FOG_LIGHTS_STATE} for more information. * *
Property Config: *
Required Permission: *
Please refer to the documentation on {@link #FOG_LIGHTS_SWITCH} for more information. * *
Property Config: *
Required Permission: *
Indicates the maximum current draw threshold for charging set by the user. {@code * configArray[0]} contains the max current draw allowed by the vehicle in Amperes. * *
Property Config: *
Required Permissions: *
Indicates the maximum charge percent threshold set by the user. Returns a float value * from 0 to 100. * *
configArray is optional. If it is populated, it represents the valid charge percent limit * values for the vehicle. Here is an example configArray: *
Property Config: *
Required Permissions: *
Returns the current charging state of the car. See {@link * android.car.hardware.property.EvChargeState} for possible values for {@code EV_CHARGE_STATE}. * *
If the vehicle has a target charge percentage other than 100, this property will return * {@link EvChargeState#STATE_FULLY_CHARGED} when the battery charge level has reached the * target level. See {@link #EV_CHARGE_PERCENT_LIMIT} for more context. * *
Property Config: *
Required Permission: *
The setting that the user wants. Setting this property to true starts the battery charging * and setting to false stops charging. * *
Property Config: *
Required Permission: *
Returns 0 if the vehicle is not charging. * *
Property Config: *
Required Permission: *
Returns the current state associated with the regenerative braking * setting in the car. See {@link android.car.hardware.property.EvRegenerativeBrakingState} for * possible values for {@code EV_REGENERATIVE_BRAKING_STATE}. * *
If the {@link #EV_BRAKE_REGENERATION_LEVEL} property has been implemented, it is likely * that the OEM supports a more granular set of regeneration levels than those provided by this * property through {@link EvRegenerativeBrakingState}. * *
Property Config: *
Required Permission: *
Returns the vehicle's curb weight in kilograms. This is the total weight of a vehicle, * inclusive of standard equipment and necessary operating fluids such as motor oil, * transmission oil and brake fluid, but without passengers or cargo. configArray[0] specifies * the vehicle’s gross weight in kilograms. This is the vehicle curb weight plus the maximum * payload (passengers + cargo) the vehicle can support. * *
Property Config: *
Required Permission: *
Returns the trailer state of the car. See {@code TrailerState} for possible values for * {@code TRAILER_PRESENT}. * *
Property Config: *
Required Permission: *
Returns whether general security regulation compliance is required, if * so, what type of requirement. See {@link GsrComplianceType} for possible enums. * *
Property Config: *
Required Permission: *
Defines the level of autonomy currently engaged in the vehicle from the SAE standard * levels 0-5, with 0 representing no autonomy and 5 representing full driving automation. These * levels are defined in accordance with the standards set in the * J3016_202104 revision of * the SAE automation level taxonomy and its clarification for international audiences * here. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.VehicleAutonomousState} are supported. * *
Property Config: *
Required Permission: *
Returns true if AEB is enabled and false if AEB is disabled. When AEB is enabled, the ADAS * system in the vehicle should be turned on and monitoring to avoid potential collisions. This * property applies for higher speed applications only. For enabling low speed automatic * emergency braking, {@link LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED} will be used. * *
This property is defined as read_write, but OEMs have the option to implement it as read * only. * *
Property Config: *
Required Permissions: *
Returns the current state of AEB. This property will always return a valid state defined * in {@link android.car.hardware.property.AutomaticEmergencyBrakingState} or {@link * android.car.hardware.property.ErrorState}. This property should apply for higher speed * applications only. For representing the state of the low speed automatic emergency braking * system, {@link LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE} should be used. * *
If AEB includes forward collision warnings before activating the brakes, those warnings * will be surfaced through the Forward Collision Warning (FCW) properties. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.AutomaticEmergencyBrakingState} and {@link * android.car.hardware.property.ErrorState} are supported. * *
Property Config: *
Required Permission: *
Returns true if FCW is enabled and false if FCW is disabled. When FCW is enabled, the ADAS * system in the vehicle should be turned on and monitoring for potential collisions. * *
This property is defined as read_write, but OEMs have the option to implement it as read * only. * *
Property Config: *
Required Permissions: *
Returns the current state of FCW. This property will always return a valid state defined * in {@link android.car.hardware.property.ForwardCollisionWarningState} or {@link * android.car.hardware.property.ErrorState}. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.ForwardCollisionWarningState} and {@link * android.car.hardware.property.ErrorState} are supported. * *
Property Config: *
Required Permission: *
Returns true if BSW is enabled and false if BSW is disabled. When BSW is enabled, the ADAS * system in the vehicle should be turned on and monitoring for objects in the vehicle’s blind * spots. * *
This property is defined as read_write, but OEMs have the option to implement it as read * only. * *
Property Config: *
Required Permissions: *
Returns the current state of BSW. This property will always return a valid state defined * in {@link android.car.hardware.property.BlindSpotWarningState} or {@link * android.car.hardware.property.ErrorState}. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.BlindSpotWarningState} and {@link * android.car.hardware.property.ErrorState} are supported. * *
Property Config: *
Required Permission: *
Returns true if LDW is enabled and false if LDW is disabled. When LDW is enabled, the ADAS * system in the vehicle should be turned on and monitoring if the vehicle is approaching or * crossing lane lines, in which case a warning will be given. * *
This property is defined as read_write, but OEMs have the option to implement it as read * only. * *
Property Config: *
Required Permissions: *
Returns the current state of LDW. This property will always return a valid state defined * in {@link android.car.hardware.property.LaneDepartureWarningState} or {@link * android.car.hardware.property.ErrorState}. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.LaneDepartureWarningState} and {@link * android.car.hardware.property.ErrorState} are supported. * *
Property Config: *
Required Permission: *
Returns true if LKA is enabled and false if LKA is disabled. When LKA is enabled, the ADAS * system in the vehicle should be turned on and monitoring if the driver unintentionally drifts * toward or over the lane marking. If an unintentional lane departure is detected, the system * applies steering control to return the vehicle into the current lane. * *
This is different from Lane Centering Assist (LCA) which, when activated, applies * continuous steering control to keep the vehicle centered in the current lane. * *
This property is defined as read_write, but OEMs have the option to implement it as read * only. * *
Property Config: *
Required Permissions: *
Returns the current state of LKA. This property will always return a valid state defined * in {@link android.car.hardware.property.LaneKeepAssistState} or {@link * android.car.hardware.property.ErrorState}. * *
If LKA includes lane departure warnings before applying steering corrections, those * warnings will be surfaced through {@link #LANE_DEPARTURE_WARNING_STATE}. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.LaneKeepAssistState} and {@link * android.car.hardware.property.ErrorState} are supported. * *
Property Config: *
Required Permission: *
Returns true if LCA is enabled and false if LCA is disabled. When LCA is enabled, the ADAS * system in the vehicle should be turned on and waiting for an activation signal from the * driver. Once the feature is activated, the ADAS system should be steering the vehicle to keep * it centered in its current lane. * *
This is different from Lane Keep Assist (LKA) which monitors if the driver unintentionally * drifts toward or over the lane marking. If an unintentional lane departure is detected, the * system applies steering control to return the vehicle into the current lane. * *
This property is defined as read_write, but OEMs have the option to implement it as read * only. * *
Property Config: *
Required Permissions: *
Commands to activate and suspend LCA. They are only valid when {@link * #LANE_CENTERING_ASSIST_ENABLED} = {@code true}. Otherwise, these commands will throw a {@link * android.car.hardware.property.PropertyNotAvailableException}. * *
When the command {@link android.car.hardware.property.LaneCenteringAssistCommand#ACTIVATE} * is sent, {@link #LANE_CENTERING_ASSIST_STATE} will be set to {@link * android.car.hardware.property.LaneCenteringAssistState#ACTIVATION_REQUESTED}. When the * command {@link android.car.hardware.property.LaneCenteringAssistCommand#ACTIVATE} succeeds, * {@link #LANE_CENTERING_ASSIST_STATE} will be set to {@link * android.car.hardware.property.LaneCenteringAssistState#ACTIVATED}. When the command {@link * android.car.hardware.property.LaneCenteringAssistCommand#DEACTIVATE} succeeds, {@link * #LANE_CENTERING_ASSIST_STATE} will be set to {@link * android.car.hardware.property.LaneCenteringAssistState#ENABLED}. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which enum * values from {@link android.car.hardware.property.LaneCenteringAssistCommand} are supported. * *
Property Config: *
Required Permission: *
Returns the current state of LCA. This property will always return a valid state defined * in {@link android.car.hardware.property.LaneCenteringAssistState} or {@link * android.car.hardware.property.ErrorState}. * *
If LCA includes lane departure warnings, those warnings will be surfaced through the Lane * Departure Warning (LDW) properties. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.LaneCenteringAssistState} and {@link * android.car.hardware.property.ErrorState} are supported. * *
Property Config: *
Required Permission: *
Return true if ELKA is enabled and false if ELKA is disabled. When ELKA is enabled, the * ADAS system in the vehicle should be on and monitoring for unsafe lane changes by the driver. * When an unsafe maneuver is detected, ELKA alerts the driver and applies steering corrections * to keep the vehicle in its original lane. * *
This property is defined as read_write, but OEMs have the option to implement it as read * only. * *
Property Config: *
Required Permissions: *
Returns the current state of ELKA. Generally, this property should return a valid state * defined in the {@link android.car.hardware.property.EmergencyLaneKeepAssistState} or {@link * android.car.hardware.property.ErrorState}. For example, if the feature is not available due * to some temporary state, that information should be conveyed through {@link * android.car.hardware.property.ErrorState}. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.EmergencyLaneKeepAssistState} and {@link * android.car.hardware.property.ErrorState} are supported. * *
Property Config: *
Required Permission: *
Return true if CC is enabled and false if CC is disabled. This property is shared by all * forms of {@link android.car.hardware.property.CruiseControlType}). * *
When CC is enabled, the ADAS system in the vehicle should be turned on and responding to * commands. * *
This property is defined as read_write, but OEMs have the option to implement it as read * only. * *
Property Config: *
Required Permissions: *
When {@link #CRUISE_CONTROL_ENABLED} is true, this property returns the type of CC that is * currently enabled (for example, standard CC, adaptive CC, etc.). Generally, this property * should return a valid state defined in the {@link * android.car.hardware.property.CruiseControlType} or {@link * android.car.hardware.property.ErrorState}. For example, if the feature is not available due * to some temporary state, that information should be conveyed through {@link * android.car.hardware.property.ErrorState}. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.CruiseControlType} and {@link * android.car.hardware.property.ErrorState} are supported. * * Trying to write {@link android.car.hardware.property.CruiseControlType#OTHER} or an * {@link android.car.hardware.property.ErrorState} to this property will throw an {@code * IllegalArgumentException}. * *
Property Config: *
Required Permissions: *
This property returns the state of CC. Generally, this property should return a valid * state defined in the {@link android.car.hardware.property.CruiseControlState} or {@link * android.car.hardware.property.ErrorState}. For example, if the feature is not available due * to some temporary state, that information should be conveyed through {@link * android.car.hardware.property.ErrorState}. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.CruiseControlState} and {@link * android.car.hardware.property.ErrorState} are supported. * *
Property Config: *
Required Permission: *
See {@link android.car.hardware.property.CruiseControlCommand} for the details about * each supported command. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.CruiseControlCommand} are supported. * *
When this property is unavailable (for example when {@link #CRUISE_CONTROL_ENABLED} is * false), writing this property will throw a {@link * android.car.hardware.property.PropertyNotAvailableException}. * *
Property Config: *
Required Permission: *
{@link android.car.hardware.property.AreaIdConfig#getMinValue()} and {@link * android.car.hardware.property.AreaIdConfig#getMaxValue()} return the min and max target * speed values respectively. These values will be non-negative. * *
{@link android.car.hardware.property.AreaIdConfig#getMinValue()} represents the lower * bound of the target speed. *
{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} represents the upper * bound of the target speed. * *
When this property is unavailable (for example when {@link #CRUISE_CONTROL_ENABLED} is * false), reading this property will throw a {@link * android.car.hardware.property.PropertyNotAvailableException}. * *
Property Config: *
Required Permission: *
This property should specify the target time gap to a leading vehicle. This gap is defined * as the time to travel the distance between the leading vehicle's rear-most point to the ACC * vehicle's front-most point. The actual time gap from a leading vehicle can be above or below * this value. * *
The possible values to set for the target time gap should be specified in {@code * configArray} in ascending order. All values must be positive. If the property is writable, * all values must be writable. * *
When this property is unavailable (for example when {@link #CRUISE_CONTROL_ENABLED} is * false), reading or writing this property will throw a {@link * android.car.hardware.property.PropertyNotAvailableException}. * *
Property Config: *
Required Permissions: *
Returns the measured distance in meters from the lead vehicle for ACC between the * rear-most point of the leading vehicle and the front-most point of the ACC vehicle. * *
{@link CarPropertyConfig#getMinValue(int)} returns 0. *
{@link CarPropertyConfig#getMaxValue(int)} returns the maximum range the distance sensor * can support. This value will be non-negative. * *
When no lead vehicle is detected (that is, when there is no leading vehicle or the leading * vehicle is too far away for the sensor to detect), this property will throw a {@link * android.car.hardware.property.PropertyNotAvailableException}. * *
When this property is unavailable (for example when {@link #CRUISE_CONTROL_ENABLED} is * false), reading this property will throw a {@link * android.car.hardware.property.PropertyNotAvailableException}. * *
Property Config: *
Required Permission: *
Return true if HOD is enabled and false if HOD is disabled. When HOD is enabled, a system * inside the vehicle should be monitoring the presence of the driver's hands on the steering * wheel and send a warning if it detects that the driver's hands are no longer on the steering * wheel. * *
This property is defined as read_write, but OEMs have the option to implement it as read * only. * *
Property Config: *
Required Permissions: *
Returns whether the driver's hands are on the steering wheel. Generally, this property * should return a valid state defined in the {@link * android.car.hardware.property.HandsOnDetectionDriverState} or {@link * android.car.hardware.property.ErrorState}. For example, if the feature is not available due * to some temporary state, that information should be conveyed through {@link * android.car.hardware.property.ErrorState}. * *
If the vehicle is sending a warning to the user because the driver's hands have been off * the steering wheel for too long, the warning should be surfaced through * {@link #HANDS_ON_DETECTION_WARNING}. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.HandsOnDetectionDriverState} and {@link * android.car.hardware.property.ErrorState} are supported. * *
Property Config: *
Required Permission: *
Returns whether a warning is being sent to the driver for having their hands off the wheel * for too long a duration. * *
Generally, this property should return a valid state defined in the {@link * android.car.hardware.property.HandsOnDetectionWarning} or {@link * android.car.hardware.property.ErrorState}. For example, if the feature is not available due * to some temporary state, that information should be conveyed through an {@link * android.car.hardware.property.ErrorState}. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.HandsOnDetectionWarning} and {@link * android.car.hardware.property.ErrorState} are supported. * *
Property Config: *
Required Permission: *
Set true to enable driver drowsiness and attention monitoring and false to disable driver * drowsiness and attention monitoring. When driver drowsiness and attention monitoring is * enabled, a system inside the vehicle will monitor the drowsiness and attention level of the * driver and warn the driver if needed. * *
Property Config: *
Required Permissions: *
Returns the current detected state of driver drowiness and attention level based on the * Karolinska Sleepiness Scale (KSS). * *
Generally, this property should return a valid state defined in the {@link * android.car.hardware.property.DriverDrowsinessAttentionState} or {@link * android.car.hardware.property.ErrorState}. For example, if the feature is not available due * to some temporary state, that information should be conveyed through {@link * android.car.hardware.property.ErrorState}. * *
If the vehicle is sending a warning to the user because the driver is too drowsy, the * warning should be surfaced through {@link #DRIVER_DROWSINESS_ATTENTION_WARNING}. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.DriverDrowsinessAttentionState} and {@link * android.car.hardware.property.ErrorState} are supported. * *
Property Config: *
Required Permission: *
Set true to enable driver drowsiness and attention warnings and false to disable driver * drowsiness and attention warnings. When driver drowsiness and attention warnings are enabled, * the driver drowsiness and attention monitoring system inside the vehicle should warn the * driver when it detects the driver is drowsy or not attentive. * *
Property Config: *
Required Permissions: *
Returns whether a warning is being sent to the driver for being drowsy or not attentive. * *
Generally, this property should return a valid state defined in the {@link * android.car.hardware.property.DriverDrowsinessAttentionWarning} or {@link * android.car.hardware.property.ErrorState}. For example, if the feature is not available due * to some temporary state, that information should be conveyed through an {@link * android.car.hardware.property.ErrorState}. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.DriverDrowsinessAttentionWarning} and {@link * android.car.hardware.property.ErrorState} are supported. * *
Property Config: *
Required Permission: *
Set true to enable driver distraction monitoring and false to disable driver distraction * monitoring. When driver distraction monitoring is enabled, a system inside the vehicle should * be monitoring the distraction level of the driver and warn the driver if needed. * *
Property Config: *
Required Permissions: *
Returns the current detected driver distraction state. * *
Generally, this property should return a valid state defined in the {@link * android.car.hardware.property.DriverDistractionState} or {@link * android.car.hardware.property.ErrorState}. For example, if the feature is not available due * to some temporary state, that information should be conveyed through {@link * android.car.hardware.property.ErrorState}. * *
If the vehicle is sending a warning to the user because the driver is too distracted, the * warning should be surfaced through {@link #DRIVER_DISTRACTION_WARNING}. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.DriverDistractionState} and {@link * android.car.hardware.property.ErrorState} are supported. * *
Property Config: *
Required Permission: *
Set true to enable driver distraction warnings and false to disable driver distraction * warnings. When driver distraction warnings are enabled, the driver distraction monitoring * system inside the vehicle should warn the driver when it detects the driver is distracted. * *
Property Config: *
Required Permissions: *
Returns whether a warning is being sent to the driver for being distracted. * *
Generally, this property should return a valid state defined in the {@link * android.car.hardware.property.DriverDistractionWarning} or {@link * android.car.hardware.property.ErrorState}. For example, if the feature is not available due * to some temporary state, that information should be conveyed through an {@link * android.car.hardware.property.ErrorState}. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.DriverDistractionWarning} and {@link * android.car.hardware.property.ErrorState} are supported. * *
Property Config: *
Required Permission: *
Returns true if low speed collision warning is enabled and false if low speed collision * warning is disabled. When low speed collision warning is enabled, the ADAS system in the * vehicle will warn the driver of potential collisions at low speeds. This property is * different from the pre-existing {@link VehiclePropertyIds#FORWARD_COLLISION_WARNING_ENABLED}, * which applies to higher speed applications only. If the vehicle doesn't have a separate * collision detection system for low speed environments, this property will not be implemented. * *
This property is defined as read_write, but OEMs have the option to implement it as read * only. * *
Property Config: *
Required Permissions: *
Returns the current state of Low Speed Collision Warning. This property will always return * a valid state defined in {@link android.car.hardware.property.LowSpeedCollisionWarningState} * or {@link android.car.hardware.property.ErrorState}. This property is different from the * pre-existing {@link VehiclePropertyIds#FORWARD_COLLISION_WARNING_ENABLED}, which applies to * higher speed applications only. If the vehicle doesn't have a separate collision detection * system for low speed environments, this property will not be implemented. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.LowSpeedCollisionWarningState} and {@link * android.car.hardware.property.ErrorState} are supported. * *
Property Config: *
Required Permission: *
Returns true if Cross Traffic Monitoring is enabled and false if Cross Traffic Monitoring * is disabled. When Cross Traffic Monitoring is enabled, the ADAS system in the vehicle should * be turned on and monitoring for potential sideways collisions. * *
This property is defined as read_write, but OEMs have the option to implement it as read * only. * *
Property Config: *
Required Permissions: *
Returns the current state of Cross Traffic Monitoring Warning. This property will always * return a valid state defined in {@link * android.car.hardware.property.CrossTrafficMonitoringWarningState} or {@link * android.car.hardware.property.ErrorState}. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.CrossTrafficMonitoringWarningState} and {@link * android.car.hardware.property.ErrorState} are supported. * *
Property Config: *
Required Permission: *
Returns true if Low Speed Automatic Emergency Braking is enabled or false if Low Speed * Automatic Emergency Braking is disabled. When Low Speed Automatic Emergency Braking is * enabled, the ADAS system in the vehicle will be turned on and monitoring to avoid potential * collisions in low speed conditions. This property is different from the pre-existing * AUTOMATIC_EMERGENCY_BRAKING_ENABLED, which should apply to higher speed applications only. If * the vehicle doesn't have a separate collision avoidance system for low speed environments, * this property will not be implemented. * *
This property is defined as read_write, but OEMs have the option to implement it as read * only. * *
Property Config: *
Required Permissions: *
Returns the current state of Low Speed Automatic Emergency Braking. This property will * always return a valid state defined in {@link * android.car.hardware.property.LowSpeedAutomaticEmergencyBrakingState} or {@link * android.car.hardware.property.ErrorState}. * *
If Low Speed Automatic Emergency Braking includes collision warnings before activating the * brakes, those warnings will be surfaced through use of {@link * android.car.VehiclePropertyIds#LOW_SPEED_COLLISION_WARNING_ENABLED} and {@link * android.car.VehiclePropertyIds#LOW_SPEED_COLLISION_WARNING_STATE}. * *
For the global area ID (0), the {@link * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states * from {@link android.car.hardware.property.LowSpeedAutomaticEmergencyBrakingState} and {@link * android.car.hardware.property.ErrorState} are supported. * *
Property Config: *
Required Permission: *