/* * 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: *

*/ @RequiresPermission(Car.PERMISSION_IDENTIFICATION) public static final int INFO_VIN = 286261504; /** * Manufacturer of vehicle. * *

This property communicates the vehicle's public brand name. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CAR_INFO) public static final int INFO_MAKE = 286261505; /** * Model of vehicle. * *

This property communicates the vehicle's public model name. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CAR_INFO) public static final int INFO_MODEL = 286261506; /** * Model year of vehicle in YYYY format based on Gregorian calendar. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CAR_INFO) public static final int INFO_MODEL_YEAR = 289407235; /** * Fuel capacity of the vehicle in milliliters. * *

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: *

*/ @RequiresPermission(Car.PERMISSION_CAR_INFO) public static final int INFO_FUEL_CAPACITY = 291504388; /** * List the {@link FuelType}s the vehicle may use. * *

{@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: *

* * @data_enum {@link FuelType} */ @RequiresPermission(Car.PERMISSION_CAR_INFO) public static final int INFO_FUEL_TYPE = 289472773; /** * Nominal usable battery capacity for EV or hybrid vehicle. * *

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: *

*/ @RequiresPermission(Car.PERMISSION_CAR_INFO) public static final int INFO_EV_BATTERY_CAPACITY = 291504390; /** * List of {@link android.car.hardware.property.EvChargingConnectorType}s this vehicle may use. * *

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: *

* * @data_enum {@link EvChargingConnectorType} */ @RequiresPermission(Car.PERMISSION_CAR_INFO) public static final int INFO_EV_CONNECTOR_TYPE = 289472775; /** * {@link PortLocationType} for the fuel door location. * *

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: *

* * @data_enum {@link PortLocationType} */ @RequiresPermission(Car.PERMISSION_CAR_INFO) public static final int INFO_FUEL_DOOR_LOCATION = 289407240; /** * {@link PortLocationType} for the EV port location. * *

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: *

* * @data_enum {@link PortLocationType} */ @RequiresPermission(Car.PERMISSION_CAR_INFO) public static final int INFO_EV_PORT_LOCATION = 289407241; /** * List {@link PortLocationType}s for Multiple EV port locations. * *

Property Config: *

* *

Required Permission: *

* * @data_enum {@link PortLocationType} */ @RequiresPermission(Car.PERMISSION_CAR_INFO) public static final int INFO_MULTI_EV_PORT_LOCATIONS = 289472780; /** * Driver's seat location. * *

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: *

* * @data_enum {@link VehicleAreaSeat} */ @RequiresPermission(Car.PERMISSION_CAR_INFO) public static final int INFO_DRIVER_SEAT = 356516106; /** * Vehicle's exterior dimensions in millimeters. * *

Exterior dimensions defined in the {@link CarPropertyValue#getValue()} {@code Integer[]}: *

* *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CAR_INFO) public static final int INFO_EXTERIOR_DIMENSIONS = 289472779; /** * Current odometer value of the vehicle in kilometers. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_MILEAGE) public static final int PERF_ODOMETER = 291504644; /** * Speed of the vehicle in meters per second. * *

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: *

*/ @RequiresPermission(Car.PERMISSION_SPEED) public static final int PERF_VEHICLE_SPEED = 291504647; /** * Speed of the vehicle in meters per second for displays. * *

Some cars display a slightly slower speed than the actual speed. This is * usually displayed on the speedometer. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_SPEED) public static final int PERF_VEHICLE_SPEED_DISPLAY = 291504648; /** * Front bicycle model steering angle for vehicle in degrees. * *

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: *

*/ @RequiresPermission(Car.PERMISSION_READ_STEERING_STATE) public static final int PERF_STEERING_ANGLE = 291504649; /** * Rear bicycle model steering angle for vehicle in degrees. * *

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: *

*/ @RequiresPermission(Car.PERMISSION_READ_STEERING_STATE) public static final int PERF_REAR_STEERING_ANGLE = 291504656; /** * Temperature of engine coolant in celsius. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED) public static final int ENGINE_COOLANT_TEMP = 291504897; /** * Engine oil level. * *

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: *

* * @data_enum {@link VehicleOilLevel} */ @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED)) public static final int ENGINE_OIL_LEVEL = 289407747; /** * Temperature of engine oil in celsius. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED) public static final int ENGINE_OIL_TEMP = 291504900; /** * Engine rpm. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED) public static final int ENGINE_RPM = 291504901; /** * Represents feature for engine idle automatic stop. * *

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: *

* * @hide */ @SystemApi @RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED) public static final int ENGINE_IDLE_AUTO_STOP_ENABLED = 287310624; /** * Impact detected. * *

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: *

* * @data_enum {@link android.car.hardware.property.ImpactSensorLocation} * * @hide */ @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) @SystemApi @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_IMPACT_SENSORS)) public static final int IMPACT_DETECTED = 289407792; /** * Reports wheel ticks. * *

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: *

*/ @RequiresPermission(Car.PERMISSION_SPEED) public static final int WHEEL_TICK = 290521862; /** * Fuel level in milliliters. * *

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: *

*/ @RequiresPermission(Car.PERMISSION_ENERGY) public static final int FUEL_LEVEL = 291504903; /** * Fuel door open. * *

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: *

*/ @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_ENERGY_PORTS, Car.PERMISSION_CONTROL_ENERGY_PORTS})) @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ENERGY_PORTS)) public static final int FUEL_DOOR_OPEN = 287310600; /** * EV battery level. * *

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: *

*/ @RequiresPermission(Car.PERMISSION_ENERGY) public static final int EV_BATTERY_LEVEL = 291504905; /** * Current usable battery capacity for EV or hybrid vehicle. * *

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: *

*/ @RequiresPermission(Car.PERMISSION_ENERGY) public static final int EV_CURRENT_BATTERY_CAPACITY = 291504909; /** * EV charge port open. * *

If the vehicle has multiple charging ports, this property will return true if any of the * charge ports are open. * *

Property Config: *

* *

Required Permissions: *

*/ @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_ENERGY_PORTS, Car.PERMISSION_CONTROL_ENERGY_PORTS})) @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ENERGY_PORTS)) public static final int EV_CHARGE_PORT_OPEN = 287310602; /** * EV charge port connected. * *

If the vehicle has multiple charging ports, this property will return true if any of the * charge ports are connected. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_ENERGY_PORTS) public static final int EV_CHARGE_PORT_CONNECTED = 287310603; /** * EV instantaneous charge rate in milliwatts. * *

Positive rate indicates battery is being charged, and Negative rate indicates battery * being discharged. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_ENERGY) public static final int EV_BATTERY_INSTANTANEOUS_CHARGE_RATE = 291504908; /** * Range remaining in meters. * *

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: *

*/ @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_ENERGY, Car.PERMISSION_ADJUST_RANGE_REMAINING})) @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_ADJUST_RANGE_REMAINING)) public static final int RANGE_REMAINING = 291504904; /** * EV battery average temperature * *

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: *

*/ @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY)) public static final int EV_BATTERY_AVERAGE_TEMPERATURE = 291504910; /** * Tire pressure in kilopascals. * *

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: *

*/ @RequiresPermission(Car.PERMISSION_TIRES) public static final int TIRE_PRESSURE = 392168201; /** * Critically low tire pressure. * *

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: *

*/ @RequiresPermission(Car.PERMISSION_TIRES) public static final int CRITICALLY_LOW_TIRE_PRESSURE = 392168202; /** * Currently selected gear by user. * *

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: *

* * @data_enum {@link VehicleGear} */ @RequiresPermission(Car.PERMISSION_POWERTRAIN) public static final int GEAR_SELECTION = 289408000; /** * Vehicle transmission's current {@link VehicleGear}. * *

{@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: *

* * @data_enum {@link VehicleGear} */ @RequiresPermission(Car.PERMISSION_POWERTRAIN) public static final int CURRENT_GEAR = 289408001; /** * Parking brake state. * *

{@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: *

*/ @RequiresPermission(Car.PERMISSION_POWERTRAIN) public static final int PARKING_BRAKE_ON = 287310850; /** * Auto-apply parking brake. * *

{@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: *

*/ @RequiresPermission(Car.PERMISSION_POWERTRAIN) public static final int PARKING_BRAKE_AUTO_APPLY = 287310851; /** * Regenerative braking level of an electronic vehicle. * *

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: *

*/ @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_POWERTRAIN, Car.PERMISSION_CONTROL_POWERTRAIN})) @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_POWERTRAIN)) public static final int EV_BRAKE_REGENERATION_LEVEL = 289408012; /** * Represents property for the current stopping mode of the vehicle. * *

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: *

* * @data_enum {@link EvStoppingMode} */ @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_POWERTRAIN, Car.PERMISSION_CONTROL_POWERTRAIN})) @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_POWERTRAIN)) public static final int EV_STOPPING_MODE = 289408013; /** * Warning for fuel low level. * *

{@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: *

*/ @RequiresPermission(Car.PERMISSION_ENERGY) public static final int FUEL_LEVEL_LOW = 287310853; /** * Night mode. * *

True indicates that the night mode sensor has detected that the car cabin environment has * low light. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_EXTERIOR_ENVIRONMENT) public static final int NIGHT_MODE = 287310855; /** * State of the vehicles turn signals * *

See {@code VehicleTurnSignal} for possible values for {@code TURN_SIGNAL_STATE}. * *

Property Config: *

* *

Required Permission: *

* * @data_enum {@link VehicleTurnSignal} */ @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS) public static final int TURN_SIGNAL_STATE = 289408008; /** * Vehicle's ignition state. * *

See {@link VehicleIgnitionState} for possible values for {@code IGNITION_STATE}. * *

Property Config: *

* *

Required Permission: *

* * @data_enum {@link VehicleIgnitionState} */ @RequiresPermission(Car.PERMISSION_POWERTRAIN) public static final int IGNITION_STATE = 289408009; /** * ABS is active. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CAR_DYNAMICS_STATE) public static final int ABS_ACTIVE = 287310858; /** * Traction Control is active. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CAR_DYNAMICS_STATE) public static final int TRACTION_CONTROL_ACTIVE = 287310859; /** * Enable or disable Electronic Stability Control (ESC). * *

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: *

* * @hide */ @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) @SystemApi @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_CAR_DYNAMICS_STATE, Car.PERMISSION_CONTROL_CAR_DYNAMICS_STATE})) @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_CAR_DYNAMICS_STATE)) public static final int ELECTRONIC_STABILITY_CONTROL_ENABLED = 287310862; /** * Electronic Stability Control (ESC) state. * *

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: *

* * @data_enum {@link android.car.hardware.property.ElectronicStabilityControlState} * @data_enum {@link ErrorState} * * @hide */ @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) @SystemApi @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_CAR_DYNAMICS_STATE)) public static final int ELECTRONIC_STABILITY_CONTROL_STATE = 289408015; /** * Fan speed setting. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) public static final int HVAC_FAN_SPEED = 356517120; /** * Fan direction setting. * *

Property Config: *

* *

Required Permission: *

* * @data_enum {@link CarHvacFanDirection} */ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) public static final int HVAC_FAN_DIRECTION = 356517121; /** * HVAC current temperature in celsius. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) public static final int HVAC_TEMPERATURE_CURRENT = 358614274; /** * HVAC target temperature set in Celsius. * *

{@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: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) public static final int HVAC_TEMPERATURE_SET = 358614275; /** * Suggested values for setting HVAC temperature. * *

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: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) public static final int HVAC_TEMPERATURE_VALUE_SUGGESTION = 291570965; /** * On/off defrost for designated window. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) public static final int HVAC_DEFROSTER = 320865540; /** * On/off AC for designated areaId. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) public static final int HVAC_AC_ON = 354419973; /** * On/off max AC. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) public static final int HVAC_MAX_AC_ON = 354419974; /** * On/off max defrost. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) public static final int HVAC_MAX_DEFROST_ON = 354419975; /** * Recirculation on/off. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) public static final int HVAC_RECIRC_ON = 354419976; /** * Enable temperature coupling between areas. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) public static final int HVAC_DUAL_ON = 354419977; /** * On/off automatic mode. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) public static final int HVAC_AUTO_ON = 354419978; /** * Seat heating/cooling. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) public static final int HVAC_SEAT_TEMPERATURE = 356517131; /** * Side Mirror Heat. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) public static final int HVAC_SIDE_MIRROR_HEAT = 339739916; /** * Steering Wheel Heating/Cooling. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) public static final int HVAC_STEERING_WHEEL_HEAT = 289408269; /** * Temperature units for display. * *

Property Config: *

* *

Required Permissions: *

* * @data_enum {@link VehicleUnit} */ @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_READ_DISPLAY_UNITS, Car.PERMISSION_CONTROL_CAR_CLIMATE})) @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)) public static final int HVAC_TEMPERATURE_DISPLAY_UNITS = 289408270; /** * Actual fan speed. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) public static final int HVAC_ACTUAL_FAN_SPEED_RPM = 356517135; /** * Represents global power state for HVAC. * *

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: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) public static final int HVAC_POWER_ON = 354419984; /** * Fan Positions Available. * *

Property Config: *

* *

Required Permission: *

* * @data_enum {@link CarHvacFanDirection} */ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) public static final int HVAC_FAN_DIRECTION_AVAILABLE = 356582673; /** * Automatic recirculation on/off. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) public static final int HVAC_AUTO_RECIRC_ON = 354419986; /** * Seat ventilation. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) public static final int HVAC_SEAT_VENTILATION = 356517139; /** * ELECTRIC DEFROSTER. * *

Property Config: *

* *

Required Permission: *

* * @hide */ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) @SystemApi public static final int HVAC_ELECTRIC_DEFROSTER_ON = 320865556; /** * Distance units for display. * *

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: *

* * @data_enum {@link VehicleUnit} */ @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS)) @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS, Car.PERMISSION_VENDOR_EXTENSION})) public static final int DISTANCE_DISPLAY_UNITS = 289408512; /** * Fuel volume units for display. * *

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: *

* * @data_enum {@link VehicleUnit} */ @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS)) @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS, Car.PERMISSION_VENDOR_EXTENSION})) public static final int FUEL_VOLUME_DISPLAY_UNITS = 289408513; /** * Tire pressure units for display. * *

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: *

* * @data_enum {@link VehicleUnit} */ @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS)) @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS, Car.PERMISSION_VENDOR_EXTENSION})) public static final int TIRE_PRESSURE_DISPLAY_UNITS = 289408514; /** * EV battery units for display. * *

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: *

* * @data_enum {@link VehicleUnit} */ @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS)) @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS, Car.PERMISSION_VENDOR_EXTENSION})) public static final int EV_BATTERY_DISPLAY_UNITS = 289408515; /** * Speed units for display. * *

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: *

* * @data_enum {@link VehicleUnit} */ @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS)) @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS, Car.PERMISSION_VENDOR_EXTENSION})) public static final int VEHICLE_SPEED_DISPLAY_UNITS = 289408516; /** * Fuel consumption units for display. * *

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: *

*/ @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS)) @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS, Car.PERMISSION_VENDOR_EXTENSION})) public static final int FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME = 287311364; /** * Outside temperature in celsius. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_EXTERIOR_ENVIRONMENT) public static final int ENV_OUTSIDE_TEMPERATURE = 291505923; /** * Property to control 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_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: *

* * @hide */ @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) @SystemApi @RequiresPermission.Read(@RequiresPermission( anyOf = {Car.PERMISSION_READ_VALET_MODE, Car.PERMISSION_CONTROL_VALET_MODE})) @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_VALET_MODE)) public static final int VALET_MODE_ENABLED = 287312389; /** * Head up display (HUD) enabled * *

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: *

* * @hide */ @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) @SystemApi @RequiresPermission.Read(@RequiresPermission( anyOf = {Car.PERMISSION_READ_HEAD_UP_DISPLAY_STATUS, Car.PERMISSION_CONTROL_HEAD_UP_DISPLAY})) @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_HEAD_UP_DISPLAY)) public static final int HEAD_UP_DISPLAY_ENABLED = 354421254; /** * Property to feed H/W input events to android. * *

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: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_DOORS) public static final int DOOR_POS = 373295872; /** * Door move. * *

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: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_DOORS) public static final int DOOR_MOVE = 373295873; /** * Door lock. * *

True indicates that the door is locked. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_DOORS) public static final int DOOR_LOCK = 371198722; /** * Door child lock feature enabled. * *

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: *

* * @hide */ @SystemApi @RequiresPermission(Car.PERMISSION_CONTROL_CAR_DOORS) public static final int DOOR_CHILD_LOCK_ENABLED = 371198723; /** * Mirror Z 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 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: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS) public static final int MIRROR_Z_POS = 339741504; /** * Mirror Z Move. * *

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: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS) public static final int MIRROR_Z_MOVE = 339741505; /** * Mirror Y 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 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: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS) public static final int MIRROR_Y_POS = 339741506; /** * Mirror Y Move. * *

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: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS) public static final int MIRROR_Y_MOVE = 339741507; /** * Mirror Lock. * *

True indicates all mirror positions are locked and not changeable. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS) public static final int MIRROR_LOCK = 287312708; /** * Mirror Fold. * *

Property Config: *

* *

Required Permission: *

*/ @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS) public static final int MIRROR_FOLD = 287312709; /** * Represents property for the Mirror Auto Fold feature. * *

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: *