blob: 3fc57c546e0286bf15347213c5f4bc4a3f5adc5c [file] [log] [blame]
/*
* 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 com.android.car.internal.ExcludeFromCodeCoverageGeneratedReport.BOILERPLATE_CODE;
import android.annotation.RequiresPermission;
import android.car.annotation.AddedInOrBefore;
import android.car.annotation.ApiRequirements;
import android.car.hardware.CarPropertyValue;
import android.car.hardware.property.VehicleElectronicTollCollectionCardStatus;
import android.car.hardware.property.VehicleElectronicTollCollectionCardType;
import android.util.Log;
import android.util.SparseArray;
import com.android.car.internal.ExcludeFromCodeCoverageGeneratedReport;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.concurrent.atomic.AtomicReference;
/**
* Based on {@code VehicleProperty.java} generated based on {@code VehicleProperty.aidl} in VHAL
* interface.
* Need to update this file when vehicle propertyId is changed in VHAL. Use it as PropertyId in
* getProperty() and setProperty() in
* {@link android.car.hardware.property.CarPropertyManager}
*/
public final class VehiclePropertyIds {
private static final String TAG = VehiclePropertyIds.class.getSimpleName();
/**
* Undefined property.
*/
@AddedInOrBefore(majorVersion = 33)
public static final int INVALID = 0;
/**
* VIN of vehicle
* Requires permission: {@link Car#PERMISSION_IDENTIFICATION}.
*/
@RequiresPermission(Car.PERMISSION_IDENTIFICATION)
@AddedInOrBefore(majorVersion = 33)
public static final int INFO_VIN = 286261504;
/**
* Manufacturer of vehicle.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
* <li>{@code String} property type
* </ul>
*
* <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
@RequiresPermission(Car.PERMISSION_CAR_INFO)
@AddedInOrBefore(majorVersion = 33)
public static final int INFO_MAKE = 286261505;
/**
* Model of vehicle.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
* <li>{@code String} property type
* </ul>
*
* <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
@RequiresPermission(Car.PERMISSION_CAR_INFO)
@AddedInOrBefore(majorVersion = 33)
public static final int INFO_MODEL = 286261506;
/**
* Model year of vehicle.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
* <li>{@code Integer} property type
* </ul>
*
* <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
@RequiresPermission(Car.PERMISSION_CAR_INFO)
@AddedInOrBefore(majorVersion = 33)
public static final int INFO_MODEL_YEAR = 289407235;
/**
* Fuel capacity of the vehicle in milliliters.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
* <li>{@code Float} property type
* </ul>
*
* <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
@RequiresPermission(Car.PERMISSION_CAR_INFO)
@AddedInOrBefore(majorVersion = 33)
public static final int INFO_FUEL_CAPACITY = 291504388;
/**
* List the {@link FuelType}s the vehicle may use.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
* <li>{@code Integer[]} property type
* </ul>
*
* <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
@RequiresPermission(Car.PERMISSION_CAR_INFO)
@AddedInOrBefore(majorVersion = 33)
public static final int INFO_FUEL_TYPE = 289472773;
/**
* Battery capacity of the vehicle in watt-hours (Wh), if EV or hybrid. This is the nominal
* battery capacity when the vehicle is new.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
* <li>{@code Float} property type
* </ul>
*
* <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
@RequiresPermission(Car.PERMISSION_CAR_INFO)
@AddedInOrBefore(majorVersion = 33)
public static final int INFO_EV_BATTERY_CAPACITY = 291504390;
/**
* List of {@link android.car.hardware.property.EvChargingConnectorType}s this vehicle may use.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
* <li>{@code Integer[]} property type
* </ul>
*
* <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
@RequiresPermission(Car.PERMISSION_CAR_INFO)
@AddedInOrBefore(majorVersion = 33)
public static final int INFO_EV_CONNECTOR_TYPE = 289472775;
/**
* {@link PortLocationType} for the fuel door location.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
* <li>{@code Integer} property type
* </ul>
*
* <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
@RequiresPermission(Car.PERMISSION_CAR_INFO)
@AddedInOrBefore(majorVersion = 33)
public static final int INFO_FUEL_DOOR_LOCATION = 289407240;
/**
* {@link PortLocationType} for the EV port location
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
* <li>{@code Integer} property type
* </ul>
*
* <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
@RequiresPermission(Car.PERMISSION_CAR_INFO)
@AddedInOrBefore(majorVersion = 33)
public static final int INFO_EV_PORT_LOCATION = 289407241;
/**
* List {@link PortLocationType}s for Multiple EV port locations.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
* <li>{@code Integer[]} property type
* </ul>
*
* <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
@RequiresPermission(Car.PERMISSION_CAR_INFO)
@AddedInOrBefore(majorVersion = 33)
public static final int INFO_MULTI_EV_PORT_LOCATIONS = 289472780;
/**
* Driver's {@link VehicleAreaSeat} seat location.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
* <li>{@code Integer} property type
* </ul>
*
* <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
@RequiresPermission(Car.PERMISSION_CAR_INFO)
@AddedInOrBefore(majorVersion = 33)
public static final int INFO_DRIVER_SEAT = 356516106;
/**
* Vehicle's exterior dimensions in millimeters.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
* <li>{@code Integer[]} property type
* </ul>
*
* <p>Exterior dimensions defined in the {@link CarPropertyValue#getValue()} {@code Integer[]}:
* <ul>
* <li>Integer[0] = height
* <li>Integer[1] = length
* <li>Integer[2] = width
* <li>Integer[3] = width including mirrors
* <li>Integer[4] = wheel base
* <li>Integer[5] = track width front
* <li>Integer[6] = track width rear
* <li>Integer[7] = curb to curb turning radius
* </ul>
*
* <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
@RequiresPermission(Car.PERMISSION_CAR_INFO)
@AddedInOrBefore(majorVersion = 33)
public static final int INFO_EXTERIOR_DIMENSIONS = 289472779;
/**
* Current odometer value of the vehicle in kilometers.
* The property is protected by the signature permission: android.car.permission.CAR_MILEAGE.
*/
@RequiresPermission(Car.PERMISSION_MILEAGE)
@AddedInOrBefore(majorVersion = 33)
public static final int PERF_ODOMETER = 291504644;
/**
* Speed of the vehicle in meters per second.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS}
* <li>{@code Float} property type
* </ul>
*
* <p>When the vehicle is moving forward, PERF_VEHICLE_SPEED is positive and negative when the
* vehicle is moving backward. Also, this value is independent of gear value (CURRENT_GEAR or
* GEAR_SELECTION). For example, if GEAR_SELECTION is GEAR_NEUTRAL, PERF_VEHICLE_SPEED is
* positive when the vehicle is moving forward, negative when moving backward, and zero when
* not moving.
*
* <p>Requires permission: {@link Car#PERMISSION_SPEED}.
*/
@RequiresPermission(Car.PERMISSION_SPEED)
@AddedInOrBefore(majorVersion = 33)
public static final int PERF_VEHICLE_SPEED = 291504647;
/**
* Speed of the vehicle in meters per second for displays.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS}
* <li>{@code Float} property type
* </ul>
*
* <p>Some cars display a slightly slower speed than the actual speed. This is
* usually displayed on the speedometer.
*
* <p>Requires permission: {@link Car#PERMISSION_SPEED}.
*/
@RequiresPermission(Car.PERMISSION_SPEED)
@AddedInOrBefore(majorVersion = 33)
public static final int PERF_VEHICLE_SPEED_DISPLAY = 291504648;
/**
* Front bicycle model steering angle for vehicle in degrees.
*
* Left is negative.
* Requires permission: {@link Car#PERMISSION_READ_STEERING_STATE}.
*/
@RequiresPermission(Car.PERMISSION_READ_STEERING_STATE)
@AddedInOrBefore(majorVersion = 33)
public static final int PERF_STEERING_ANGLE = 291504649;
/**
* Rear bicycle model steering angle for vehicle in degrees.
*
* Left is negative.
* Requires permission: {@link Car#PERMISSION_READ_STEERING_STATE}.
*/
@RequiresPermission(Car.PERMISSION_READ_STEERING_STATE)
@AddedInOrBefore(majorVersion = 33)
public static final int PERF_REAR_STEERING_ANGLE = 291504656;
/**
* Temperature of engine coolant in celsius.
* The property is protected by the signature permission:
* android.car.permission.CAR_ENGINE_DETAILED.
*/
@RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED)
@AddedInOrBefore(majorVersion = 33)
public static final int ENGINE_COOLANT_TEMP = 291504897;
/**
* Engine oil level
* The property is protected by the signature permission:
* android.car.permission.CAR_ENGINE_DETAILED.
*/
@RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED)
@AddedInOrBefore(majorVersion = 33)
public static final int ENGINE_OIL_LEVEL = 289407747;
/**
* Temperature of engine oil in celsius.
* The property is protected by the signature permission:
* android.car.permission.CAR_ENGINE_DETAILED.
*/
@RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED)
@AddedInOrBefore(majorVersion = 33)
public static final int ENGINE_OIL_TEMP = 291504900;
/**
* Engine rpm
* The property is protected by the signature permission:
* android.car.permission.CAR_ENGINE_DETAILED.
*/
@RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED)
@AddedInOrBefore(majorVersion = 33)
public static final int ENGINE_RPM = 291504901;
/**
* Reports wheel ticks.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS}
* <li>{@code Long[]} property type
* </ul>
*
* <p>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.
*
* <p>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.
*
* <ul>
* <li>Long[0] = reset count
* <li>Long[1] = front left ticks
* <li>Long[2] = front right ticks
* <li>Long[3] = rear right ticks
* <li>Long[4] = rear left ticks
* </ul>
*
* <p>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:
*
* <ul>
* <li>configArray[0], bits [0:3] = supported wheels. Uses {@link VehicleAreaWheel}.
* <li>configArray[1] = micrometers per front left wheel tick
* <li>configArray[2] = micrometers per front right wheel tick
* <li>configArray[3] = micrometers per rear right wheel tick
* <li>configArray[4] = micrometers per rear left wheel tick
* </ul>
*
* <p>NOTE: If a wheel is not supported, its value is always 0.
*
* <p>Requires permission: {@link Car#PERMISSION_SPEED}.
*/
@RequiresPermission(Car.PERMISSION_SPEED)
@AddedInOrBefore(majorVersion = 33)
public static final int WHEEL_TICK = 290521862;
/**
* Fuel remaining in the vehicle in milliliters.
*
* <p>Property Config:
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS}
* <li>{@code Float} property type
* </ul>
*
* <p>Required Permissions:
* <ul>
* <li>{@link Car#PERMISSION_ENERGY} to read property.
* <li>Property is not writable.
* </ul>
*/
@RequiresPermission(Car.PERMISSION_ENERGY)
@AddedInOrBefore(majorVersion = 33)
public static final int FUEL_LEVEL = 291504903;
/**
* Fuel door open.
*
* <p>Property Config:
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Boolean} property type
* </ul>
*
* <p>Required Permissions:
* <ul>
* <li>{@link Car#PERMISSION_ENERGY_PORTS} to read property.
* <li>Signature permission, android.car.permission.CONTROL_CAR_ENERGY_PORTS, to write
* property.
* </ul>
*/
@RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY_PORTS))
@RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ENERGY_PORTS))
@AddedInOrBefore(majorVersion = 33)
public static final int FUEL_DOOR_OPEN = 287310600;
/**
* EV battery level in watt-hours (Wh), if EV or hybrid.
*
* <p>Property Config:
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS}
* <li>{@code Float} property type
* </ul>
*
* <p>Required Permissions:
* <ul>
* <li>{@link Car#PERMISSION_ENERGY} to read property.
* <li>Property is not writable.
* </ul>
*/
@RequiresPermission(Car.PERMISSION_ENERGY)
@AddedInOrBefore(majorVersion = 33)
public static final int EV_BATTERY_LEVEL = 291504905;
/**
* EV charge port open.
*
* <p>Property Config:
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Boolean} property type
* </ul>
*
* <p>Required Permissions:
* <ul>
* <li>{@link Car#PERMISSION_ENERGY_PORTS} to read property.
* <li>Signature permission, android.car.permission.CONTROL_CAR_ENERGY_PORTS, to write
* property.
* </ul>
*/
@RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY_PORTS))
@RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ENERGY_PORTS))
@AddedInOrBefore(majorVersion = 33)
public static final int EV_CHARGE_PORT_OPEN = 287310602;
/**
* EV charge port connected.
*
* <p>Property Config:
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Boolean} property type
* </ul>
*
* <p>Required Permissions:
* <ul>
* <li>{@link Car#PERMISSION_ENERGY_PORTS} to read property.
* <li>Property is not writable.
* </ul>
*/
@RequiresPermission(Car.PERMISSION_ENERGY_PORTS)
@AddedInOrBefore(majorVersion = 33)
public static final int EV_CHARGE_PORT_CONNECTED = 287310603;
/**
* EV instantaneous charge rate in milliwatts.
*
* <p>Positive rate indicates battery is being charged, and Negative rate indicates battery
* being discharged.
*
* <p>Property Config:
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS}
* <li>{@code Float} property type
* </ul>
*
* <p>Required Permissions:
* <ul>
* <li>{@link Car#PERMISSION_ENERGY} to read property.
* <li>Property is not writable.
* </ul>
*/
@RequiresPermission(Car.PERMISSION_ENERGY)
@AddedInOrBefore(majorVersion = 33)
public static final int EV_BATTERY_INSTANTANEOUS_CHARGE_RATE = 291504908;
/**
* Range remaining in meters.
*
* <p>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.
*
* <p>Property Config:
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS}
* <li>{@code Float} property type
* </ul>
*
* <p>Required Permissions:
* <ul>
* <li>{@link Car#PERMISSION_ENERGY} to read property.
* <li>Signature permission, android.car.permission.ADJUST_RANGE_REMAINING, to write property.
* </ul>
*/
@RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY))
@RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_ADJUST_RANGE_REMAINING))
@AddedInOrBefore(majorVersion = 33)
public static final int RANGE_REMAINING = 291504904;
/**
* Tire pressure in kilopascals.
*
* min/max value indicates tire pressure sensor range. Each tire will have a separate min/max
* value denoted by its areaConfig.areaId.
* The property is protected by the signature permission: android.car.permission.CAR_TIRES.
*/
@RequiresPermission(Car.PERMISSION_TIRES)
@AddedInOrBefore(majorVersion = 33)
public static final int TIRE_PRESSURE = 392168201;
/**
* Critically low tire pressure
*
* <p>This property indicates the critically low pressure threshold for each tire. It
* indicates when it is time for tires to be replaced or fixed. The value
* must be less than or equal to minFloatValue in {@link VehiclePropertyIds#TIRE_PRESSURE}.
* <p>Minimum and maximum property values
* (that is, {@code minFloatValue}, {@code maxFloatValue}) are not applicable to this property.
*/
@RequiresPermission(Car.PERMISSION_TIRES)
@AddedInOrBefore(majorVersion = 33)
public static final int CRITICALLY_LOW_TIRE_PRESSURE = 392168202;
/**
* Currently selected gear by user.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Integer} property type
* </ul>
*
* <p> See {@link VehicleGear} for gear value enum.
*
* <p>configArray represents the list of supported gears for the vehicle. For example,
* configArray for an EV vehicle is set as follows:
*
* <ul>
* <li>configArray[0] = {@link VehicleGear#GEAR_REVERSE}
* <li>configArray[1] = {@link VehicleGear#GEAR_PARK}
* <li>configArray[2] = {@link VehicleGear#GEAR_DRIVE}
* </ul>
*
* <p>Example automatic transmission configArray:
*
* <ul>
* <li>configArray[0] = {@link VehicleGear#GEAR_NEUTRAL}
* <li>configArray[1] = {@link VehicleGear#GEAR_REVERSE}
* <li>configArray[2] = {@link VehicleGear#GEAR_PARK}
* <li>configArray[3] = {@link VehicleGear#GEAR_DRIVE}
* <li>configArray[4] = {@link VehicleGear#GEAR_FIRST}
* <li>configArray[5] = {@link VehicleGear#GEAR_SECOND}
* <li>...
* </ul>
*
* <p>Example manual transmission configArray:
*
* <ul>
* <li>configArray[0] = {@link VehicleGear#GEAR_NEUTRAL}
* <li>configArray[1] = {@link VehicleGear#GEAR_REVERSE}
* <li>configArray[4] = {@link VehicleGear#GEAR_FIRST}
* <li>configArray[5] = {@link VehicleGear#GEAR_SECOND}
* <li>...
* </ul>
*
* <p>Requires permission: {@link Car#PERMISSION_POWERTRAIN}.
*/
@RequiresPermission(Car.PERMISSION_POWERTRAIN)
@AddedInOrBefore(majorVersion = 33)
public static final int GEAR_SELECTION = 289408000;
/**
* Vehicle transmission's current {@link VehicleGear}.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Integer} property type
* </ul>
*
* <p>{@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.
*
* <p>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:
*
* <ul>
* <li>configArray[0] = {@link VehicleGear#GEAR_REVERSE}
* <li>configArray[1] = {@link VehicleGear#GEAR_PARK}
* <li>configArray[2] = {@link VehicleGear#GEAR_DRIVE}
* </ul>
*
* <p>Example automatic transmission configArray:
*
* <ul>
* <li>configArray[0] = {@link VehicleGear#GEAR_NEUTRAL}
* <li>configArray[1] = {@link VehicleGear#GEAR_REVERSE}
* <li>configArray[2] = {@link VehicleGear#GEAR_PARK}
* <li>configArray[4] = {@link VehicleGear#GEAR_FIRST}
* <li>configArray[5] = {@link VehicleGear#GEAR_SECOND}
* <li>...
* </ul>
*
* <p>Example manual transmission configArray:
*
* <ul>
* <li>configArray[0] = {@link VehicleGear#GEAR_NEUTRAL}
* <li>configArray[1] = {@link VehicleGear#GEAR_REVERSE}
* <li>configArray[4] = {@link VehicleGear#GEAR_FIRST}
* <li>configArray[5] = {@link VehicleGear#GEAR_SECOND}
* <li>...
* </ul>
*
* <p>Requires permission: {@link Car#PERMISSION_POWERTRAIN}.
*/
@RequiresPermission(Car.PERMISSION_POWERTRAIN)
@AddedInOrBefore(majorVersion = 33)
public static final int CURRENT_GEAR = 289408001;
/**
* Parking brake state.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Boolean} property type
* </ul>
*
* <p>Requires permission: {@link Car#PERMISSION_POWERTRAIN}.
*/
@RequiresPermission(Car.PERMISSION_POWERTRAIN)
@AddedInOrBefore(majorVersion = 33)
public static final int PARKING_BRAKE_ON = 287310850;
/**
* Auto-apply parking brake.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Boolean} property type
* </ul>
*
* <p>Requires permission: {@link Car#PERMISSION_POWERTRAIN}.
*/
@RequiresPermission(Car.PERMISSION_POWERTRAIN)
@AddedInOrBefore(majorVersion = 33)
public static final int PARKING_BRAKE_AUTO_APPLY = 287310851;
/**
* Warning for fuel low level.
*
* <p>{@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:
* <ul>
* <li>For a gas powered vehicle, this property is based solely on gas level.
* <li>For a battery powered vehicle, this property is based solely on battery level.
* <li>For a hybrid vehicle, this property may be based on the combination of gas and
* battery levels, at the OEM's discretion.
* </ul>
*
* <p>Property Config:
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Boolean} property type
* </ul>
*
* <p>Required Permissions:
* <ul>
* <li>{@link Car#PERMISSION_ENERGY} to read property.
* <li>Property is not writable.
* </ul>
*/
@RequiresPermission(Car.PERMISSION_ENERGY)
@AddedInOrBefore(majorVersion = 33)
public static final int FUEL_LEVEL_LOW = 287310853;
/**
* Night mode.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Boolean} property type
* </ul>
*
* <p>True indicates that the night mode sensor has detected that the car cabin environment has
* low light.
*
* <p>Requires permission: {@link Car#PERMISSION_EXTERIOR_ENVIRONMENT}.
*/
@RequiresPermission(Car.PERMISSION_EXTERIOR_ENVIRONMENT)
@AddedInOrBefore(majorVersion = 33)
public static final int NIGHT_MODE = 287310855;
/**
* State of the vehicles turn signals
* The property is protected by the signature permission:
* android.car.permission.CAR_EXTERIOR_LIGHTS .
*/
@RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS)
@AddedInOrBefore(majorVersion = 33)
public static final int TURN_SIGNAL_STATE = 289408008;
/**
* Vehicle's ignition state.
*
* <p>See {@link VehicleIgnitionState} for possible values for {@code IGNITION_STATE}.
*
* <p>Property Config:
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Integer} property type
* </ul>
*
* <p>Required Permissions:
* <ul>
* <li>{@link Car#PERMISSION_POWERTRAIN} to read property.
* <li>Property is not writable.
* </ul>
*/
@RequiresPermission(Car.PERMISSION_POWERTRAIN)
@AddedInOrBefore(majorVersion = 33)
public static final int IGNITION_STATE = 289408009;
/**
* ABS is active
* The property is protected by the signature permission:
* android.car.permission.CAR_DYNAMICS_STATE.
*/
@RequiresPermission(Car.PERMISSION_CAR_DYNAMICS_STATE)
@AddedInOrBefore(majorVersion = 33)
public static final int ABS_ACTIVE = 287310858;
/**
* Traction Control is active
* The property is protected by the signature permission:
* android.car.permission.CAR_DYNAMICS_STATE.
*/
@RequiresPermission(Car.PERMISSION_CAR_DYNAMICS_STATE)
@AddedInOrBefore(majorVersion = 33)
public static final int TRACTION_CONTROL_ACTIVE = 287310859;
/**
* Fan speed setting
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_CLIMATE.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
public static final int HVAC_FAN_SPEED = 356517120;
/**
* Fan direction setting
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_CLIMATE.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
public static final int HVAC_FAN_DIRECTION = 356517121;
/**
* HVAC current temperature in celsius.
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_CLIMATE.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
public static final int HVAC_TEMPERATURE_CURRENT = 358614274;
/**
* HVAC, target temperature set.
*
* <p>The {@code configArray} is used to indicate the valid values for HVAC in Fahrenheit and
* Celsius. Android might use it in the HVAC app UI.
* <p>The {@code configArray} is set as follows:
* <ul>
* <li>{@code configArray[0]} is [the lower bound of the supported temperature in Celsius]
* * 10.
* <li>{@code configArray[1]} is [the upper bound of the supported temperature in Celsius]
* * 10.
* <li>{@code configArray[2]} is [the increment in Celsius] * 10.
* <li>{@code configArray[3]} is
* [the lower bound of the supported temperature in Fahrenheit] * 10.
* <li>{@code configArray[4]} is
* [the upper bound of the supported temperature in Fahrenheit] * 10.
* <li>{@code configArray[5]} is [the increment in Fahrenheit] * 10.
* </ul>
* <p>For example, if the vehicle supports temperature values as:
* <pre>
* [16.0, 16.5, 17.0 ,..., 28.0] in Celsius
* [60.5, 61.5, 62.5 ,..., 85.5] in Fahrenheit
* </pre>
* <p>The {@code configArray} should be:
* <pre>
* configArray = {160, 280, 5, 605, 855, 10}.
* </pre>
* <p>If the vehicle supports {@link VehiclePropertyIds#HVAC_TEMPERATURE_VALUE_SUGGESTION},
* the application can use that property to get the suggested value before setting
* {@code HVAC_TEMPERATURE_SET}. Otherwise, the application may choose the
* value in {@code configArray} of {@code HVAC_TEMPERATURE_SET} by itself.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
public static final int HVAC_TEMPERATURE_SET = 358614275;
/**
* Suggested values for setting HVAC temperature.
*
* <p>Implement the property to help applications understand the closest supported temperature
* value in Celsius or Fahrenheit.
* <ul>
* <li>{@code floatValues[0]} is the requested value that an application wants to set a
* temperature to.
* <li>{@code floatValues[1]} is the unit for {@code floatValues[0]}. It should be one of
* ({@link VehicleUnit#CELSIUS}, {@link VehicleUnit#FAHRENHEIT}).
* <li>{@code floatValues[2]} is the value OEMs suggested in CELSIUS. This value is not
* included in the request.
* <li>{@code floatValues[3]} is the value OEMs suggested in FAHRENHEIT. This value is not
* included in the request.
* </ul>
* <p>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}.
*
* <p>For example, when a user uses the voice assistant to set HVAC temperature to 66.2 in
* Fahrenheit.
* <p>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.
*
* <p>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.
* <p>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.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
public static final int HVAC_TEMPERATURE_VALUE_SUGGESTION = 291570965;
/**
* On/off defrost for designated window
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_CLIMATE.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
public static final int HVAC_DEFROSTER = 320865540;
/**
* On/off AC for designated areaId
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_CLIMATE.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
public static final int HVAC_AC_ON = 354419973;
/**
* On/off max AC
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_CLIMATE.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
public static final int HVAC_MAX_AC_ON = 354419974;
/**
* On/off max defrost
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_CLIMATE.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
public static final int HVAC_MAX_DEFROST_ON = 354419975;
/**
* Recirculation on/off
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_CLIMATE.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
public static final int HVAC_RECIRC_ON = 354419976;
/**
* Enable temperature coupling between areas.
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_CLIMATE.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
public static final int HVAC_DUAL_ON = 354419977;
/**
* On/off automatic mode
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_CLIMATE.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
public static final int HVAC_AUTO_ON = 354419978;
/**
* Seat heating/cooling
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_CLIMATE.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
public static final int HVAC_SEAT_TEMPERATURE = 356517131;
/**
* Side Mirror Heat
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_CLIMATE.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
public static final int HVAC_SIDE_MIRROR_HEAT = 339739916;
/**
* Steering Wheel Heating/Cooling
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_CLIMATE.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
public static final int HVAC_STEERING_WHEEL_HEAT = 289408269;
/**
* Temperature units for display
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_CLIMATE.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
public static final int HVAC_TEMPERATURE_DISPLAY_UNITS = 289408270;
/**
* Actual fan speed
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_CLIMATE.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
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).
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_CLIMATE.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
public static final int HVAC_POWER_ON = 354419984;
/**
* Fan Positions Available
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_CLIMATE.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
public static final int HVAC_FAN_DIRECTION_AVAILABLE = 356582673;
/**
* Automatic recirculation on/off
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_CLIMATE.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
public static final int HVAC_AUTO_RECIRC_ON = 354419986;
/**
* Seat ventilation
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_CLIMATE.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
public static final int HVAC_SEAT_VENTILATION = 356517139;
/**
* ELECTRIC DEFROSTER
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_CLIMATE.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
@AddedInOrBefore(majorVersion = 33)
public static final int HVAC_ELECTRIC_DEFROSTER_ON = 320865556;
/**
* Distance units for display.
*
* <p>Indicates which units the car is using to display distances to the user.
*
* <p>configArray represents the list of supported units for {@code
* DISTANCE_DISPLAY_UNITS}. Here is an example configArray:
* <ul>
* <li>configArray[0] = {@link VehicleUnit#METER}
* <li>configArray[1] = {@link VehicleUnit#KILOMETER}
* <li>configArray[2] = {@link VehicleUnit#MILE}
* </ul>
*
* <p>Property Config:
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Integer} property type
* </ul>
*
* <p>Required Permissions:
* <ul>
* <li>{@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property.
* <li>Signature permissions, android.car.permission.CONTROL_CAR_DISPLAY_UNITS and
* android.car.permission.CAR_VENDOR_EXTENSION, to write property.
* </ul>
*/
@RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS))
@RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS,
Car.PERMISSION_VENDOR_EXTENSION}))
@AddedInOrBefore(majorVersion = 33)
public static final int DISTANCE_DISPLAY_UNITS = 289408512;
/**
* Fuel volume units for display.
*
* <p>Indicates which units the car is using to display fuel volume to the user.
*
* <p>configArray represents the list of supported units for {@code
* FUEL_VOLUME_DISPLAY_UNITS}. Here is an example configArray:
* <ul>
* <li>configArray[0] = {@link VehicleUnit#LITER}
* <li>configArray[1] = {@link VehicleUnit#US_GALLON}
* </ul>
*
* <p>Property Config:
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Integer} property type
* </ul>
*
* <p>Required Permissions:
* <ul>
* <li>{@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property.
* <li>Signature permissions, android.car.permission.CONTROL_CAR_DISPLAY_UNITS and
* android.car.permission.CAR_VENDOR_EXTENSION, to write property.
* </ul>
*/
@RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS))
@RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS,
Car.PERMISSION_VENDOR_EXTENSION}))
@AddedInOrBefore(majorVersion = 33)
public static final int FUEL_VOLUME_DISPLAY_UNITS = 289408513;
/**
* Tire pressure units for display.
*
* <p>Indicates which units the car is using to display tire pressure to the user.
*
* <p>configArray represents the list of supported units for {@code
* TIRE_PRESSURE_DISPLAY_UNITS}. Here is an example configArray:
* <ul>
* <li>configArray[0] = {@link VehicleUnit#KILOPASCAL}
* <li>configArray[1] = {@link VehicleUnit#PSI}
* <li>configArray[2] = {@link VehicleUnit#BAR}
* </ul>
*
* <p>Property Config:
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Integer} property type
* </ul>
*
* <p>Required Permissions:
* <ul>
* <li>{@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property.
* <li>Signature permissions, android.car.permission.CONTROL_CAR_DISPLAY_UNITS and
* android.car.permission.CAR_VENDOR_EXTENSION, to write property.
* </ul>
*/
@RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS))
@RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS,
Car.PERMISSION_VENDOR_EXTENSION}))
@AddedInOrBefore(majorVersion = 33)
public static final int TIRE_PRESSURE_DISPLAY_UNITS = 289408514;
/**
* EV battery units for display.
*
* <p>Indicates which units the vehicle is using to display EV battery information to the user.
*
* <p>configArray represents the list of supported units for {@code
* EV_BATTERY_DISPLAY_UNITS}. Here is an example configArray:
* <ul>
* <li>configArray[0] = {@link VehicleUnit#WATT_HOUR}
* <li>configArray[1] = {@link VehicleUnit#AMPERE_HOURS}
* <li>configArray[2] = {@link VehicleUnit#KILOWATT_HOUR}
* </ul>
*
* <p>Property Config:
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Integer} property type
* </ul>
*
* <p>Required Permissions:
* <ul>
* <li>{@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property.
* <li>Signature permissions, android.car.permission.CONTROL_CAR_DISPLAY_UNITS and
* android.car.permission.CAR_VENDOR_EXTENSION, to write property.
* </ul>
*/
@RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS))
@RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS,
Car.PERMISSION_VENDOR_EXTENSION}))
@AddedInOrBefore(majorVersion = 33)
public static final int EV_BATTERY_DISPLAY_UNITS = 289408515;
/**
* Speed units for display.
*
* <p>Indicates type of units the vehicle is using to display speed to user.
*
* <p>configArray represents the list of supported units for {@code
* VEHICLE_SPEED_DISPLAY_UNITS}. Here is an example configArray:
* <ul>
* <li>configArray[0] = {@link VehicleUnit#METER_PER_SEC}
* <li>configArray[1] = {@link VehicleUnit#MILES_PER_HOUR}
* <li>configArray[2] = {@link VehicleUnit#KILOMETERS_PER_HOUR}
* </ul>
*
* <p>Property Config:
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Integer} property type
* </ul>
*
* <p>Required Permissions:
* <ul>
* <li>{@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property.
* <li>Signature permissions, android.car.permission.CONTROL_CAR_DISPLAY_UNITS and
* android.car.permission.CAR_VENDOR_EXTENSION, to write property.
* </ul>
*/
@RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS))
@RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS,
Car.PERMISSION_VENDOR_EXTENSION}))
@AddedInOrBefore(majorVersion = 33)
public static final int VEHICLE_SPEED_DISPLAY_UNITS = 289408516;
/**
* Fuel consumption units for display.
*
* <p>Indicates type of units the car is using to display fuel consumption information to user.
*
* <p>{@code true} indicates units are distance over volume such as MPG.
*
* <p>{@code false} indicates units are volume over distance such as L/100KM.
*
* <p>Property Config:
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Boolean} property type
* </ul>
*
* <p>Required Permissions:
* <ul>
* <li>{@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property.
* <li>Signature permissions, android.car.permission.CONTROL_CAR_DISPLAY_UNITS and
* android.car.permission.CAR_VENDOR_EXTENSION, to write property.
* </ul>
*/
@RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS))
@RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS,
Car.PERMISSION_VENDOR_EXTENSION}))
@AddedInOrBefore(majorVersion = 33)
public static final int FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME = 287311364;
/**
* Outside temperature in celsius.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS}
* <li>{@code Float} property type
* </ul>
*
* <p>Requires permission: {@link Car#PERMISSION_EXTERIOR_ENVIRONMENT}.
*/
@RequiresPermission(Car.PERMISSION_EXTERIOR_ENVIRONMENT)
@AddedInOrBefore(majorVersion = 33)
public static final int ENV_OUTSIDE_TEMPERATURE = 291505923;
/**
* Property to control power state of application processor
*
* It is assumed that AP's power state is controller by separate power
* controller.
* The property is protected by the signature permission: android.car.permission.CAR_POWER.
*/
@RequiresPermission(Car.PERMISSION_CAR_POWER)
@AddedInOrBefore(majorVersion = 33)
public static final int AP_POWER_STATE_REQ = 289475072;
/**
* Property to report power state of application processor
*
* It is assumed that AP's power state is controller by separate power
* controller.
* The property is protected by the signature permission: android.car.permission.CAR_POWER.
*/
@RequiresPermission(Car.PERMISSION_CAR_POWER)
@AddedInOrBefore(majorVersion = 33)
public static final int AP_POWER_STATE_REPORT = 289475073;
/**
* Property to report bootup reason for the current power on. This is a
* static property that will not change for the whole duration until power
* off. For example, even if user presses power on button after automatic
* power on with door unlock, bootup reason must stay with
* VehicleApPowerBootupReason#USER_UNLOCK.
* The property is protected by the signature permission: android.car.permission.CAR_POWER.
*/
@RequiresPermission(Car.PERMISSION_CAR_POWER)
@AddedInOrBefore(majorVersion = 33)
public static final int AP_POWER_BOOTUP_REASON = 289409538;
/**
* Property to represent brightness of the display. Some cars have single
* control for the brightness of all displays and this property is to share
* change in that control.
* The property is protected by the signature permission: android.car.permission.CAR_POWER.
*/
@RequiresPermission(Car.PERMISSION_CAR_POWER)
@AddedInOrBefore(majorVersion = 33)
public static final int DISPLAY_BRIGHTNESS = 289409539;
/**
* Property to feed H/W input events to android
*/
@AddedInOrBefore(majorVersion = 33)
public static final int HW_KEY_INPUT = 289475088;
/**
* Door position
*
* This is an integer in case a door may be set to a particular position.
* Max value indicates fully open, min value (0) indicates fully closed.
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_DOORS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_DOORS)
@AddedInOrBefore(majorVersion = 33)
public static final int DOOR_POS = 373295872;
/**
* Door move
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_DOORS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_DOORS)
@AddedInOrBefore(majorVersion = 33)
public static final int DOOR_MOVE = 373295873;
/**
* Door lock
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_DOORS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_DOORS)
@AddedInOrBefore(majorVersion = 33)
public static final int DOOR_LOCK = 371198722;
/**
* Mirror Z Position
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_MIRRORS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS)
@AddedInOrBefore(majorVersion = 33)
public static final int MIRROR_Z_POS = 339741504;
/**
* Mirror Z Move
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_MIRRORS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS)
@AddedInOrBefore(majorVersion = 33)
public static final int MIRROR_Z_MOVE = 339741505;
/**
* Mirror Y Position
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_MIRRORS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS)
@AddedInOrBefore(majorVersion = 33)
public static final int MIRROR_Y_POS = 339741506;
/**
* Mirror Y Move
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_MIRRORS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS)
@AddedInOrBefore(majorVersion = 33)
public static final int MIRROR_Y_MOVE = 339741507;
/**
* Mirror Lock
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_MIRRORS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS)
@AddedInOrBefore(majorVersion = 33)
public static final int MIRROR_LOCK = 287312708;
/**
* Mirror Fold
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_MIRRORS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS)
@AddedInOrBefore(majorVersion = 33)
public static final int MIRROR_FOLD = 287312709;
/**
* Seat memory select
*
* This parameter selects the memory preset to use to select the seat
* position. The minValue is always 0, and the maxValue determines the
* number of seat positions available.
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_MEMORY_SELECT = 356518784;
/**
* Seat memory set
*
* This setting allows the user to save the current seat position settings
* into the selected preset slot. The maxValue for each seat position
* must match the maxValue for SEAT_MEMORY_SELECT.
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_MEMORY_SET = 356518785;
/**
* Seatbelt buckled
*
* True indicates belt is buckled.
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_BELT_BUCKLED = 354421634;
/**
* Seatbelt height position
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_BELT_HEIGHT_POS = 356518787;
/**
* Seatbelt height move
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_BELT_HEIGHT_MOVE = 356518788;
/**
* Seat fore/aft position
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_FORE_AFT_POS = 356518789;
/**
* Seat fore/aft move
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_FORE_AFT_MOVE = 356518790;
/**
* Seat backrest angle 1 position
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_BACKREST_ANGLE_1_POS = 356518791;
/**
* Seat backrest angle 1 move
*
* Moves the backrest forward or recline.
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_BACKREST_ANGLE_1_MOVE = 356518792;
/**
* Seat backrest angle 2 position
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_BACKREST_ANGLE_2_POS = 356518793;
/**
* Seat backrest angle 2 move
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_BACKREST_ANGLE_2_MOVE = 356518794;
/**
* Seat height position
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_HEIGHT_POS = 356518795;
/**
* Seat height move
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_HEIGHT_MOVE = 356518796;
/**
* Seat depth position
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_DEPTH_POS = 356518797;
/**
* Seat depth move
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_DEPTH_MOVE = 356518798;
/**
* Seat tilt position
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_TILT_POS = 356518799;
/**
* Seat tilt move
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_TILT_MOVE = 356518800;
/**
* Lumber fore/aft position
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_LUMBAR_FORE_AFT_POS = 356518801;
/**
* Lumbar fore/aft move
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_LUMBAR_FORE_AFT_MOVE = 356518802;
/**
* Lumbar side support position
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_LUMBAR_SIDE_SUPPORT_POS = 356518803;
/**
* Lumbar side support move
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_LUMBAR_SIDE_SUPPORT_MOVE = 356518804;
/**
* Headrest height position
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_HEADREST_HEIGHT_POS = 289409941;
/**
* Headrest height move
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_HEADREST_HEIGHT_MOVE = 356518806;
/**
* Headrest angle position
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_HEADREST_ANGLE_POS = 356518807;
/**
* Headrest angle move
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_HEADREST_ANGLE_MOVE = 356518808;
/**
* Headrest fore/aft position
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_HEADREST_FORE_AFT_POS = 356518809;
/**
* Headrest fore/aft move
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_HEADREST_FORE_AFT_MOVE = 356518810;
/**
* Seat Occupancy
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_SEATS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
@AddedInOrBefore(majorVersion = 33)
public static final int SEAT_OCCUPANCY = 356518832;
/**
* Window Position
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_WINDOWS
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_WINDOWS)
@AddedInOrBefore(majorVersion = 33)
public static final int WINDOW_POS = 322964416;
/**
* Window Move
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_WINDOWS
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_WINDOWS)
@AddedInOrBefore(majorVersion = 33)
public static final int WINDOW_MOVE = 322964417;
/**
* Window Lock
* The property is protected by the signature permission:
* android.car.permission.CONTROL_CAR_WINDOWS
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_WINDOWS)
@AddedInOrBefore(majorVersion = 33)
public static final int WINDOW_LOCK = 320867268;
/**
* Vehicle Maps Service (VMS) message
* The property is protected by the signature permissions:
* android.car.permission.VMS_PUBLISHER and android.car.permission.VMS_SUBSCRIBER.
*/
@RequiresPermission(anyOf = {Car.PERMISSION_VMS_PUBLISHER, Car.PERMISSION_VMS_SUBSCRIBER})
@AddedInOrBefore(majorVersion = 33)
public static final int VEHICLE_MAP_SERVICE = 299895808;
/**
* OBD2 Live Sensor Data
*
* Reports a snapshot of the current (live) values of the OBD2 sensors available.
* The property is protected by the signature permission:
* android.car.permission.CAR_DIAGNOSTICS.
*/
@RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_READ_ALL)
@AddedInOrBefore(majorVersion = 33)
public static final int OBD2_LIVE_FRAME = 299896064;
/**
* OBD2 Freeze Frame Sensor Data
*
* Reports a snapshot of the value of the OBD2 sensors available at the time that a fault
* occurred and was detected.
* The property is protected by the signature permission:
* android.car.permission.CAR_DIAGNOSTICS.
*/
@RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_READ_ALL)
@AddedInOrBefore(majorVersion = 33)
public static final int OBD2_FREEZE_FRAME = 299896065;
/**
* OBD2 Freeze Frame Information
* The property is protected by the signature permission:
* android.car.permission.CAR_DIAGNOSTICS.
*/
@RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_READ_ALL)
@AddedInOrBefore(majorVersion = 33)
public static final int OBD2_FREEZE_FRAME_INFO = 299896066;
/**
* OBD2 Freeze Frame Clear
*
* This property allows deletion of any of the freeze frames stored in
* vehicle memory, as described by OBD2_FREEZE_FRAME_INFO.
* The property is protected by the signature permission:
* android.car.permission.CLEAR_CAR_DIAGNOSTICS.
*/
@RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_CLEAR)
@AddedInOrBefore(majorVersion = 33)
public static final int OBD2_FREEZE_FRAME_CLEAR = 299896067;
/**
* Headlights State
* The property is protected by the signature permission:
* android.car.permission.CAR_EXTERIOR_LIGHTS.
*/
@RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS)
@AddedInOrBefore(majorVersion = 33)
public static final int HEADLIGHTS_STATE = 289410560;
/**
* High beam lights state
* The property is protected by the signature permission:
* android.car.permission.CAR_EXTERIOR_LIGHTS.
*/
@RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS)
@AddedInOrBefore(majorVersion = 33)
public static final int HIGH_BEAM_LIGHTS_STATE = 289410561;
/**
* Fog light state
*
* If the car has both front and rear fog lights:
* If front and rear fog lights can only be controlled together: FOG_LIGHTS_STATE provides
* the state of fog lights.
*
* If front and rear fog lights can only be controlled independently: FRONT_FOG_LIGHTS_STATE
* and REAR_FOG_LIGHTS_STATE provide the state of front, rear fog lights respectively.
*
* If the car has only front fog lights:
* Only one of FOG_LIGHTS_STATE or FRONT_FOG_LIGHTS_STATE will be implemented in the car. The
* implemented property provides the state of the front fog lights.
*
* If the car has only rear fog lights:
* Only one of FOG_LIGHTS_STATE or REAR_FOG_LIGHTS_STATE will be implemented in the car. The
* implemented property provides the state of the rear fog lights.
*
* The property is protected by the privileged|signature permission:
* android.car.permission.CAR_EXTERIOR_LIGHTS.
*/
@RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS)
@AddedInOrBefore(majorVersion = 33)
public static final int FOG_LIGHTS_STATE = 289410562;
/**
* Hazard light status
* The property is protected by the signature permission:
* android.car.permission.CAR_EXTERIOR_LIGHTS.
*/
@RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS)
@AddedInOrBefore(majorVersion = 33)
public static final int HAZARD_LIGHTS_STATE = 289410563;
/**
* Headlight switch
* The property is protected by the signature permission:
* android.car.permission.CAR_EXTERIOR_LIGHTS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS)
@AddedInOrBefore(majorVersion = 33)
public static final int HEADLIGHTS_SWITCH = 289410576;
/**
* High beam light switch
* The property is protected by the signature permission:
* android.car.permission.CAR_EXTERIOR_LIGHTS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS)
@AddedInOrBefore(majorVersion = 33)
public static final int HIGH_BEAM_LIGHTS_SWITCH = 289410577;
/**
* Fog light switch
*
* If the car has both front and rear fog lights:
* If front and rear fog lights can only be controlled together: FOG_LIGHTS_SWITCH should be
* used to change the fog lights state.
*
* If front and rear fog lights can only be controlled independently: FRONT_FOG_LIGHTS_SWITCH
* and REAR_FOG_LIGHTS_SWITCH should be used to change the front, rear fog lights state
* respectively.
*
* If the car has only front fog lights:
* Only one of FOG_LIGHTS_SWITCH or FRONT_FOG_LIGHTS_SWITCH will be implemented in the car. The
* implemented property should be used to change the front fog lights state.
*
* If the car has only rear fog lights:
* Only one of FOG_LIGHTS_SWITCH or REAR_FOG_LIGHTS_SWITCH will be implemented in the car. The
* implemented property should be used to change the rear fog lights state.
*
* The property is protected by the privileged|signature permission:
* android.car.permission.CONTROL_CAR_EXTERIOR_LIGHTS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS)
@AddedInOrBefore(majorVersion = 33)
public static final int FOG_LIGHTS_SWITCH = 289410578;
/**
* Hazard light switch
* The property is protected by the signature permission:
* android.car.permission.CAR_EXTERIOR_LIGHTS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS)
@AddedInOrBefore(majorVersion = 33)
public static final int HAZARD_LIGHTS_SWITCH = 289410579;
/**
* Cabin lights
* Requires permission: {@link Car#PERMISSION_READ_INTERIOR_LIGHTS}.
*/
@RequiresPermission(Car.PERMISSION_READ_INTERIOR_LIGHTS)
@AddedInOrBefore(majorVersion = 33)
public static final int CABIN_LIGHTS_STATE = 289410817;
/**
* Cabin lights switch
* Requires permission: {@link Car#PERMISSION_CONTROL_INTERIOR_LIGHTS}.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_INTERIOR_LIGHTS)
@AddedInOrBefore(majorVersion = 33)
public static final int CABIN_LIGHTS_SWITCH = 289410818;
/**
* Reading lights
* Requires permission: {@link Car#PERMISSION_READ_INTERIOR_LIGHTS}.
*/
@RequiresPermission(Car.PERMISSION_READ_INTERIOR_LIGHTS)
@AddedInOrBefore(majorVersion = 33)
public static final int READING_LIGHTS_STATE = 356519683;
/**
* Reading lights switch
* Requires permission: {@link Car#PERMISSION_CONTROL_INTERIOR_LIGHTS}.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_INTERIOR_LIGHTS)
@AddedInOrBefore(majorVersion = 33)
public static final int READING_LIGHTS_SWITCH = 356519684;
/**
* Property to get the initial settings for multi-user management (such as initial user).
*
* <p>Doesn't require permission because it's not exposed through
* {@link android.car.hardware.property.CarPropertyManager}.
*
* @hide
*/
@AddedInOrBefore(majorVersion = 33)
public static final int INITIAL_USER_INFO = 299896583;
/**
* Property to switch user for multi-user management.
*
* <p>Doesn't require permission because it's not exposed through
* {@link android.car.hardware.property.CarPropertyManager}.
*
* @hide
*/
@AddedInOrBefore(majorVersion = 33)
public static final int SWITCH_USER = 299896584;
/**
* Property to create a new user for multi-user management.
*
* <p>Doesn't require permission because it's not exposed through
* {@link android.car.hardware.property.CarPropertyManager}.
*
* @hide
*/
@AddedInOrBefore(majorVersion = 33)
public static final int CREATE_USER = 299896585;
/**
* Property to remove a new user for multi-user management.
*
* <p>Doesn't require permission because it's not exposed through
* {@link android.car.hardware.property.CarPropertyManager}.
*
* @hide
*/
@AddedInOrBefore(majorVersion = 33)
public static final int REMOVE_USER = 299896586;
/**
* Property to get / set the user authentication types associated with an Android user.
*
* <p>Doesn't require permission because it's not exposed through
* {@link android.car.hardware.property.CarPropertyManager}.
*
* @hide
*/
@AddedInOrBefore(majorVersion = 33)
public static final int USER_IDENTIFICATION_ASSOCIATION = 299896587;
/**
* Property for VHAL to apply power policy.
*
* <p>Doesn't require permission because it's not exposed through
* {@link android.car.hardware.property.CarPropertyManager}.
*
* @hide
*/
@AddedInOrBefore(majorVersion = 33)
public static final int POWER_POLICY_REQ = 286265121;
/**
* Property for VHAL to set the default power policies per power status transition.
*
* <p>Doesn't require permission because it's not exposed through
* {@link android.car.hardware.property.CarPropertyManager}.
*
* @hide
*/
@AddedInOrBefore(majorVersion = 33)
public static final int POWER_POLICY_GROUP_REQ = 286265122;
/**
* Property to report a new current power policy to VHAL.
*
* <p>Doesn't require permission because it's not exposed through
* {@link android.car.hardware.property.CarPropertyManager}.
*
* @hide
*/
@AddedInOrBefore(majorVersion = 33)
public static final int CURRENT_POWER_POLICY = 286265123;
/**
* Property to report that car watchdog is alive.
*
* <p>Doesn't require permission because it's not exposed through
* {@link android.car.hardware.property.CarPropertyManager}.
*
* @hide
*/
@AddedInOrBefore(majorVersion = 33)
public static final int WATCHDOG_ALIVE = 290459441;
/**
* Property to report a process terminated by car watchdog.
*
* <p>Doesn't require permission because it's not exposed through
* {@link android.car.hardware.property.CarPropertyManager}.
*
* @hide
*/
@AddedInOrBefore(majorVersion = 33)
public static final int WATCHDOG_TERMINATED_PROCESS = 299896626;
/**
* Property to signal a heartbeat from VHAL.
*
* <p>Doesn't require permission because it's not exposed through
* {@link android.car.hardware.property.CarPropertyManager}.
*
* @hide
*/
@AddedInOrBefore(majorVersion = 33)
public static final int VHAL_HEARTBEAT = 290459443;
/**
* Property to start the ClusterUI in cluster display.
*
* <p>Doesn't require permission because it's not exposed through
* {@link android.car.hardware.property.CarPropertyManager}.
*
* @hide
*/
@AddedInOrBefore(majorVersion = 33)
public static final int CLUSTER_SWITCH_UI = 289410868;
/**
* Property to change the state of the cluster display.
*
* <p>Doesn't require permission because it's not exposed through
* {@link android.car.hardware.property.CarPropertyManager}.
*
* @hide
*/
@AddedInOrBefore(majorVersion = 33)
public static final int CLUSTER_DISPLAY_STATE = 289476405;
/**
* Property to reports the current display and ClusterUI statue.
*
* <p>Doesn't require permission because it's not exposed through
* {@link android.car.hardware.property.CarPropertyManager}.
*
* @hide
*/
@AddedInOrBefore(majorVersion = 33)
public static final int CLUSTER_REPORT_STATE = 299896630;
/**
* Property to request to change the cluster display state to show some ClusterUI.
*
* <p>Doesn't require permission because it's not exposed through
* {@link android.car.hardware.property.CarPropertyManager}.
*
* @hide
*/
@AddedInOrBefore(majorVersion = 33)
public static final int CLUSTER_REQUEST_DISPLAY = 289410871;
/**
* Property to inform the current navigation state.
*
* <p>Doesn't require permission because it's not exposed through
* {@link android.car.hardware.property.CarPropertyManager}.
*
* @hide
*/
@AddedInOrBefore(majorVersion = 33)
public static final int CLUSTER_NAVIGATION_STATE = 292556600;
/**
* Current date and time, encoded as Unix time.
*
* <p>This value denotes the number of milliseconds that have elapsed since 1/1/1970 UTC.
*/
@RequiresPermission(Car.PERMISSION_CAR_EPOCH_TIME)
@AddedInOrBefore(majorVersion = 33)
public static final int EPOCH_TIME = 290457094;
/**
* External encryption binding seed.
*
* <p>This value is mixed with the local storage encryption seed. This property holds 16 bytes,
* and is expected to be persisted on an ECU separate from the IVI. The property is initially
* set by AAOS, who generates it using a CSRNG. AAOS will then read the property on subsequent
* boots.
*/
@RequiresPermission(Car.PERMISSION_STORAGE_ENCRYPTION_BINDING_SEED)
@AddedInOrBefore(majorVersion = 33)
public static final int STORAGE_ENCRYPTION_BINDING_SEED = 292554247;
/**
* Electronic Toll Collection card type.
*
* <p>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}.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Integer} property type
* </ul>
*
* <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
@RequiresPermission(Car.PERMISSION_CAR_INFO)
@AddedInOrBefore(majorVersion = 33)
public static final int ELECTRONIC_TOLL_COLLECTION_CARD_TYPE = 289410873;
/**
* Electronic Toll Collection card status.
*
* <p>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}.
*
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Integer} property type
* </ul>
*
* <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
@RequiresPermission(Car.PERMISSION_CAR_INFO)
@AddedInOrBefore(majorVersion = 33)
public static final int ELECTRONIC_TOLL_COLLECTION_CARD_STATUS = 289410874;
/**
* Front fog lights state
*
* Please refer to the documentation on FOG_LIGHTS_STATE for more information.
*
* The property is protected by the privileged|signature permission:
* android.car.permission.CAR_EXTERIOR_LIGHTS.
*/
@RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS)
@AddedInOrBefore(majorVersion = 33)
public static final int FRONT_FOG_LIGHTS_STATE = 289410875;
/**
* Front fog lights switch
*
* Please refer to the documentation on FOG_LIGHTS_SWITCH for more information.
*
* The property is protected by the privileged|signature permission:
* android.car.permission.CONTROL_CAR_EXTERIOR_LIGHTS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS)
@AddedInOrBefore(majorVersion = 33)
public static final int FRONT_FOG_LIGHTS_SWITCH = 289410876;
/**
* Rear fog lights state
*
* Please refer to the documentation on FOG_LIGHTS_STATE for more information.
*
* The property is protected by the privileged|signature permission:
* android.car.permission.CAR_EXTERIOR_LIGHTS.
*/
@RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS)
@AddedInOrBefore(majorVersion = 33)
public static final int REAR_FOG_LIGHTS_STATE = 289410877;
/**
* Rear fog lights switch
*
* Please refer to the documentation on FOG_LIGHTS_SWITCH for more information.
*
* The property is protected by the privileged|signature permission:
* android.car.permission.CONTROL_CAR_EXTERIOR_LIGHTS.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS)
@AddedInOrBefore(majorVersion = 33)
public static final int REAR_FOG_LIGHTS_SWITCH = 289410878;
/**
* EV charge current draw limit.
*
* <p>Indicates the maximum current draw threshold for charging set by the user. configArray[0]
* contains the max current draw allowed by the vehicle in Amperes.
*
* <p>Property Config:
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Boolean} property type
* </ul>
*
* <p>Required Permissions:
* <ul>
* <li>Dangerous permission {@link Car#PERMISSION_ENERGY} to read property.
* <li>Privileged|Signature permission {@link Car#PERMISSION_CONTROL_CAR_ENERGY} to write
* property.
* </ul>
*/
@RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY))
@RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_CAR_ENERGY))
@AddedInOrBefore(majorVersion = 33)
public static final int EV_CHARGE_CURRENT_DRAW_LIMIT = 291508031;
/**
* EV charge percent limit.
*
* <p>Indicates the maximum charge percent threshold set by the user. Returns a float value
* from 0 to 100.
*
* <p>configArray is optional. If it is populated, it represents the valid charge percent limit
* values for the vehicle. Here is an example configArray:
* <ul>
* <li>configArray[0] = 20
* <li>configArray[1] = 40
* <li>configArray[2] = 60
* <li>configArray[3] = 80
* </ul>
*
* <p>Property Config:
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Float} property type
* </ul>
*
* <p>Required Permissions:
* <ul>
* <li>Dangerous permission {@link Car#PERMISSION_ENERGY} to read property.
* <li>Privileged|Signature permission {@link Car#PERMISSION_CONTROL_CAR_ENERGY} to write
* property.
* </ul>
*/
@RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY))
@RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_CAR_ENERGY))
@AddedInOrBefore(majorVersion = 33)
public static final int EV_CHARGE_PERCENT_LIMIT = 291508032;
/**
* Charging state of the car.
*
* <p>Returns the current charging state of the car. See
* {@link android.car.hardware.property.EvChargeState} for possible values for
* {@code EV_CHARGE_STATE}.
*
* <p>Property Config:
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Integer} property type
* </ul>
*
* <p>Required Permissions:
* <ul>
* <li>
* <li>Dangerous permission {@link Car#PERMISSION_ENERGY} to read property.
* <li>Property is not writable.
* </ul>
*/
@RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY))
@AddedInOrBefore(majorVersion = 33)
public static final int EV_CHARGE_STATE = 289410881;
/**
* Start or stop charging the EV battery.
*
* <p>The setting that the user wants. Setting this property to true starts the battery charging
* and setting to false stops charging.
*
* <p>Required Permissions:
* <ul>
* <li>Privileged|Signature permission {@link Car#PERMISSION_CONTROL_CAR_ENERGY} to read/write
* property.
*/
@RequiresPermission(Car.PERMISSION_CONTROL_CAR_ENERGY)
@AddedInOrBefore(majorVersion = 33)
public static final int EV_CHARGE_SWITCH = 287313730;
/**
* Estimated charge time remaining in seconds.
*
* <p>Returns 0 if the vehicle is not charging.
*
* <p>Property Config:
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS}
* <li>{@code Integer} property type
* </ul>
*
* <p>Required Permissions:
* <ul>
* <li>Dangerous permission {@link Car#PERMISSION_ENERGY} to read property.
* <li>Property is not writable.
* </ul>
*/
@RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY))
@AddedInOrBefore(majorVersion = 33)
public static final int EV_CHARGE_TIME_REMAINING = 289410883;
/**
* Regenerative braking or one-pedal drive state of the car.
*
* <p>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}.
*
* <p>Property Config:
* <ul>
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
* <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
* <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
* <li>{@code Integer} property type
* </ul>
*
* <p>Required Permissions:
* <ul>
* <li>Dangerous permission {@link Car#PERMISSION_ENERGY} to read property.
* <li>Property is not writable.
* </ul>
*/
@RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY))
@AddedInOrBefore(majorVersion = 33)
public static final int EV_REGENERATIVE_BRAKING_STATE = 289410884;
/**
* Vehicle’s curb weight
*
* <p>Returns the vehicle's curb weight in kilograms. configArray[0] specifies the vehicle’s
* gross weight in kilograms.
*
* <p>Required Permissions:
* <ul>
* <li>Privileged|Signature permission {@link Car#PERMISSION_PRIVILEGED_CAR_INFO} to read
* property.
* </ul>
*/
@RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_PRIVILEGED_CAR_INFO))
@AddedInOrBefore(majorVersion = 33)
public static final int VEHICLE_CURB_WEIGHT = 289410886;
/**
* Indicates if there is a trailer present or not.
*
* <p>Returns the trailer state of the car.
*
* <p>Required Permissions:
* <ul>
* <li>Privileged|Signature permission {@link Car#PERMISSION_PRIVILEGED_CAR_INFO} to read
* property.
* </ul>
*/
@RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_PRIVILEGED_CAR_INFO))
@AddedInOrBefore(majorVersion = 33)
public static final int TRAILER_PRESENT = 289410885;
/**
* EU's General security regulation compliance requirement.
*
* <p>Returns whether general security regulation compliance is required, if
* so, what type of requirement. See {@link GsrComplianceRequirementTYpe} for possible enums.
*
* <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
*/
@RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_CAR_INFO))
@ApiRequirements(minCarVersion = ApiRequirements.CarVersion.TIRAMISU_1,
minPlatformVersion = ApiRequirements.PlatformVersion.TIRAMISU_0)
public static final int GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT = 289410887;
/*
* Used to cache the mapping of property Id integer values into property name strings. This
* will be initialized during the first call to {@link VehiclePropertyIds#toString(int)}.
*/
private static final AtomicReference<SparseArray<String>> sPropertyIdToPropertyNameHolder =
new AtomicReference<>();
/**
* @deprecated to prevent others from instantiating this class
*/
@Deprecated
@ExcludeFromCodeCoverageGeneratedReport(reason = BOILERPLATE_CODE)
public VehiclePropertyIds() {
}
/**
* Gets a user-friendly representation of a property.
*/
@AddedInOrBefore(majorVersion = 33)
public static String toString(int property) {
SparseArray<String> propertyIdsToNameMapping = sPropertyIdToPropertyNameHolder.get();
if (propertyIdsToNameMapping == null) {
propertyIdsToNameMapping = getPropertyIdsToNameMapping();
sPropertyIdToPropertyNameHolder.compareAndSet(null, propertyIdsToNameMapping);
}
String name = propertyIdsToNameMapping.get(property);
return name != null ? name : "0x" + Integer.toHexString(property);
}
/**
* Creates a SparseArray mapping property Ids to their String representations
* directly from this class.
*/
private static SparseArray<String> getPropertyIdsToNameMapping() {
Field[] classFields = VehiclePropertyIds.class.getDeclaredFields();
SparseArray<String> propertyIdsToNameMapping = new SparseArray<>(classFields.length);
for (int i = 0; i < classFields.length; i++) {
Field candidateField = classFields[i];
try {
if (isPropertyId(candidateField)) {
propertyIdsToNameMapping
.put(candidateField.getInt(null), candidateField.getName());
}
} catch (IllegalAccessException e) {
Log.wtf(TAG, "Failed trying to find value for " + candidateField.getName(), e);
}
}
return propertyIdsToNameMapping;
}
private static boolean isPropertyId(Field field) {
// We only want public static final int values
return field.getType() == int.class
&& field.getModifiers() == (Modifier.STATIC | Modifier.FINAL | Modifier.PUBLIC);
}
}