1 /* 2 * Copyright (C) 2018 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.car; 18 19 import static com.android.car.internal.ExcludeFromCodeCoverageGeneratedReport.BOILERPLATE_CODE; 20 21 import android.annotation.RequiresPermission; 22 import android.annotation.SystemApi; 23 import android.car.annotation.AddedInOrBefore; 24 import android.car.annotation.ApiRequirements; 25 import android.car.hardware.CarPropertyValue; 26 import android.car.hardware.property.VehicleElectronicTollCollectionCardStatus; 27 import android.car.hardware.property.VehicleElectronicTollCollectionCardType; 28 import android.util.Log; 29 import android.util.SparseArray; 30 31 import com.android.car.internal.ExcludeFromCodeCoverageGeneratedReport; 32 33 import java.lang.reflect.Field; 34 import java.lang.reflect.Modifier; 35 import java.util.concurrent.atomic.AtomicReference; 36 37 /** 38 * List of vehicle property IDs. 39 * 40 * <p> Property IDs are used with the {@link android.car.hardware.property.CarPropertyManager} APIs 41 * (e.g. {@link android.car.hardware.property.CarPropertyManager#getProperty(int, int)} or {@link 42 * android.car.hardware.property.CarPropertyManager#setProperty(Class, int, int, Object)}). 43 */ 44 public final class VehiclePropertyIds { 45 46 private static final String TAG = VehiclePropertyIds.class.getSimpleName(); 47 48 /** 49 * Undefined property. 50 */ 51 @AddedInOrBefore(majorVersion = 33) 52 public static final int INVALID = 0; 53 /** 54 * VIN of vehicle 55 * Requires permission: {@link Car#PERMISSION_IDENTIFICATION}. 56 */ 57 @RequiresPermission(Car.PERMISSION_IDENTIFICATION) 58 @AddedInOrBefore(majorVersion = 33) 59 public static final int INFO_VIN = 286261504; 60 /** 61 * Manufacturer of vehicle. 62 * 63 * <ul> 64 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 65 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 66 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 67 * <li>{@code String} property type 68 * </ul> 69 * 70 * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}. 71 */ 72 @RequiresPermission(Car.PERMISSION_CAR_INFO) 73 @AddedInOrBefore(majorVersion = 33) 74 public static final int INFO_MAKE = 286261505; 75 /** 76 * Model of vehicle. 77 * 78 * <ul> 79 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 80 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 81 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 82 * <li>{@code String} property type 83 * </ul> 84 * 85 * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}. 86 */ 87 @RequiresPermission(Car.PERMISSION_CAR_INFO) 88 @AddedInOrBefore(majorVersion = 33) 89 public static final int INFO_MODEL = 286261506; 90 /** 91 * Model year of vehicle. 92 * 93 * <ul> 94 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 95 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 96 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 97 * <li>{@code Integer} property type 98 * </ul> 99 * 100 * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}. 101 */ 102 @RequiresPermission(Car.PERMISSION_CAR_INFO) 103 @AddedInOrBefore(majorVersion = 33) 104 public static final int INFO_MODEL_YEAR = 289407235; 105 /** 106 * Fuel capacity of the vehicle in milliliters. 107 * 108 * <ul> 109 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 110 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 111 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 112 * <li>{@code Float} property type 113 * </ul> 114 * 115 * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}. 116 */ 117 @RequiresPermission(Car.PERMISSION_CAR_INFO) 118 @AddedInOrBefore(majorVersion = 33) 119 public static final int INFO_FUEL_CAPACITY = 291504388; 120 /** 121 * List the {@link FuelType}s the vehicle may use. 122 * 123 * <ul> 124 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 125 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 126 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 127 * <li>{@code Integer[]} property type 128 * </ul> 129 * 130 * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}. 131 */ 132 @RequiresPermission(Car.PERMISSION_CAR_INFO) 133 @AddedInOrBefore(majorVersion = 33) 134 public static final int INFO_FUEL_TYPE = 289472773; 135 /** 136 * Battery capacity of the vehicle in watt-hours (Wh), if EV or hybrid. This is the nominal 137 * battery capacity when the vehicle is new. 138 * 139 * <ul> 140 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 141 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 142 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 143 * <li>{@code Float} property type 144 * </ul> 145 * 146 * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}. 147 */ 148 @RequiresPermission(Car.PERMISSION_CAR_INFO) 149 @AddedInOrBefore(majorVersion = 33) 150 public static final int INFO_EV_BATTERY_CAPACITY = 291504390; 151 /** 152 * List of {@link android.car.hardware.property.EvChargingConnectorType}s this vehicle may use. 153 * 154 * <ul> 155 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 156 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 157 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 158 * <li>{@code Integer[]} property type 159 * </ul> 160 * 161 * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}. 162 */ 163 @RequiresPermission(Car.PERMISSION_CAR_INFO) 164 @AddedInOrBefore(majorVersion = 33) 165 public static final int INFO_EV_CONNECTOR_TYPE = 289472775; 166 /** 167 * {@link PortLocationType} for the fuel door location. 168 * 169 * <ul> 170 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 171 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 172 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 173 * <li>{@code Integer} property type 174 * </ul> 175 * 176 * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}. 177 */ 178 @RequiresPermission(Car.PERMISSION_CAR_INFO) 179 @AddedInOrBefore(majorVersion = 33) 180 public static final int INFO_FUEL_DOOR_LOCATION = 289407240; 181 /** 182 * {@link PortLocationType} for the EV port location 183 * 184 * <ul> 185 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 186 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 187 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 188 * <li>{@code Integer} property type 189 * </ul> 190 * 191 * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}. 192 */ 193 @RequiresPermission(Car.PERMISSION_CAR_INFO) 194 @AddedInOrBefore(majorVersion = 33) 195 public static final int INFO_EV_PORT_LOCATION = 289407241; 196 /** 197 * List {@link PortLocationType}s for Multiple EV port locations. 198 * 199 * <ul> 200 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 201 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 202 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 203 * <li>{@code Integer[]} property type 204 * </ul> 205 * 206 * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}. 207 */ 208 @RequiresPermission(Car.PERMISSION_CAR_INFO) 209 @AddedInOrBefore(majorVersion = 33) 210 public static final int INFO_MULTI_EV_PORT_LOCATIONS = 289472780; 211 /** 212 * Driver's {@link VehicleAreaSeat} seat location. 213 * 214 * <ul> 215 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 216 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 217 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 218 * <li>{@code Integer} property type 219 * </ul> 220 * 221 * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}. 222 */ 223 @RequiresPermission(Car.PERMISSION_CAR_INFO) 224 @AddedInOrBefore(majorVersion = 33) 225 public static final int INFO_DRIVER_SEAT = 356516106; 226 /** 227 * Vehicle's exterior dimensions in millimeters. 228 * 229 * <ul> 230 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 231 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 232 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 233 * <li>{@code Integer[]} property type 234 * </ul> 235 * 236 * <p>Exterior dimensions defined in the {@link CarPropertyValue#getValue()} {@code Integer[]}: 237 * <ul> 238 * <li>Integer[0] = height 239 * <li>Integer[1] = length 240 * <li>Integer[2] = width 241 * <li>Integer[3] = width including mirrors 242 * <li>Integer[4] = wheel base 243 * <li>Integer[5] = track width front 244 * <li>Integer[6] = track width rear 245 * <li>Integer[7] = curb to curb turning radius 246 * </ul> 247 * 248 * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}. 249 */ 250 @RequiresPermission(Car.PERMISSION_CAR_INFO) 251 @AddedInOrBefore(majorVersion = 33) 252 public static final int INFO_EXTERIOR_DIMENSIONS = 289472779; 253 /** 254 * Current odometer value of the vehicle in kilometers. 255 * The property is protected by the signature permission: android.car.permission.CAR_MILEAGE. 256 */ 257 @RequiresPermission(Car.PERMISSION_MILEAGE) 258 @AddedInOrBefore(majorVersion = 33) 259 public static final int PERF_ODOMETER = 291504644; 260 /** 261 * Speed of the vehicle in meters per second. 262 * 263 * <ul> 264 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 265 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 266 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 267 * <li>{@code Float} property type 268 * </ul> 269 * 270 * <p>When the vehicle is moving forward, PERF_VEHICLE_SPEED is positive and negative when the 271 * vehicle is moving backward. Also, this value is independent of gear value (CURRENT_GEAR or 272 * GEAR_SELECTION). For example, if GEAR_SELECTION is GEAR_NEUTRAL, PERF_VEHICLE_SPEED is 273 * positive when the vehicle is moving forward, negative when moving backward, and zero when 274 * not moving. 275 * 276 * <p>Requires permission: {@link Car#PERMISSION_SPEED}. 277 */ 278 @RequiresPermission(Car.PERMISSION_SPEED) 279 @AddedInOrBefore(majorVersion = 33) 280 public static final int PERF_VEHICLE_SPEED = 291504647; 281 /** 282 * Speed of the vehicle in meters per second for displays. 283 * 284 * <ul> 285 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 286 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 287 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 288 * <li>{@code Float} property type 289 * </ul> 290 * 291 * <p>Some cars display a slightly slower speed than the actual speed. This is 292 * usually displayed on the speedometer. 293 * 294 * <p>Requires permission: {@link Car#PERMISSION_SPEED}. 295 */ 296 @RequiresPermission(Car.PERMISSION_SPEED) 297 @AddedInOrBefore(majorVersion = 33) 298 public static final int PERF_VEHICLE_SPEED_DISPLAY = 291504648; 299 /** 300 * Front bicycle model steering angle for vehicle in degrees. 301 * 302 * Left is negative. 303 * Requires permission: {@link Car#PERMISSION_READ_STEERING_STATE}. 304 */ 305 @RequiresPermission(Car.PERMISSION_READ_STEERING_STATE) 306 @AddedInOrBefore(majorVersion = 33) 307 public static final int PERF_STEERING_ANGLE = 291504649; 308 /** 309 * Rear bicycle model steering angle for vehicle in degrees. 310 * 311 * Left is negative. 312 * Requires permission: {@link Car#PERMISSION_READ_STEERING_STATE}. 313 */ 314 @RequiresPermission(Car.PERMISSION_READ_STEERING_STATE) 315 @AddedInOrBefore(majorVersion = 33) 316 public static final int PERF_REAR_STEERING_ANGLE = 291504656; 317 /** 318 * Temperature of engine coolant in celsius. 319 * The property is protected by the signature permission: 320 * android.car.permission.CAR_ENGINE_DETAILED. 321 */ 322 @RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED) 323 @AddedInOrBefore(majorVersion = 33) 324 public static final int ENGINE_COOLANT_TEMP = 291504897; 325 /** 326 * Engine oil level 327 * The property is protected by the signature permission: 328 * android.car.permission.CAR_ENGINE_DETAILED. 329 */ 330 @RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED) 331 @AddedInOrBefore(majorVersion = 33) 332 public static final int ENGINE_OIL_LEVEL = 289407747; 333 /** 334 * Temperature of engine oil in celsius. 335 * The property is protected by the signature permission: 336 * android.car.permission.CAR_ENGINE_DETAILED. 337 */ 338 @RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED) 339 @AddedInOrBefore(majorVersion = 33) 340 public static final int ENGINE_OIL_TEMP = 291504900; 341 /** 342 * Engine rpm 343 * The property is protected by the signature permission: 344 * android.car.permission.CAR_ENGINE_DETAILED. 345 */ 346 @RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED) 347 @AddedInOrBefore(majorVersion = 33) 348 public static final int ENGINE_RPM = 291504901; 349 /** 350 * Reports wheel ticks. 351 * 352 * <ul> 353 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 354 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 355 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 356 * <li>{@code Long[]} property type 357 * </ul> 358 * 359 * <p>The first element in the array is a reset count. A reset indicates 360 * previous tick counts are not comparable with this and future ones. Some 361 * sort of discontinuity in tick counting has occurred. 362 * 363 * <p>The next four elements represent ticks for individual wheels in the 364 * following order: front left, front right, rear right, rear left. All 365 * tick counts are cumulative. Tick counts increment when the vehicle 366 * moves forward, and decrement when vehicles moves in reverse. The ticks 367 * should be reset to 0 when the vehicle is started by the user. 368 * 369 * <ul> 370 * <li>Long[0] = reset count 371 * <li>Long[1] = front left ticks 372 * <li>Long[2] = front right ticks 373 * <li>Long[3] = rear right ticks 374 * <li>Long[4] = rear left ticks 375 * </ul> 376 * 377 * <p>configArray is used to indicate the micrometers-per-wheel-tick values and 378 * which wheels are supported. Each micrometers-per-wheel-tick value is static (i.e. will not 379 * update based on wheel's status) and a best approximation. For example, if a vehicle has 380 * multiple rim/tire size options, the micrometers-per-wheel-tick values are set to those for 381 * the typically expected rim/tire size. configArray is set as follows: 382 * 383 * <ul> 384 * <li>configArray[0], bits [0:3] = supported wheels. Uses {@link VehicleAreaWheel}. 385 * <li>configArray[1] = micrometers per front left wheel tick 386 * <li>configArray[2] = micrometers per front right wheel tick 387 * <li>configArray[3] = micrometers per rear right wheel tick 388 * <li>configArray[4] = micrometers per rear left wheel tick 389 * </ul> 390 * 391 * <p>NOTE: If a wheel is not supported, its value is always 0. 392 * 393 * <p>Requires permission: {@link Car#PERMISSION_SPEED}. 394 */ 395 @RequiresPermission(Car.PERMISSION_SPEED) 396 @AddedInOrBefore(majorVersion = 33) 397 public static final int WHEEL_TICK = 290521862; 398 /** 399 * Fuel remaining in the vehicle in milliliters. 400 * 401 * <p>Property Config: 402 * <ul> 403 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 404 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 405 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 406 * <li>{@code Float} property type 407 * </ul> 408 * 409 * <p>Required Permissions: 410 * <ul> 411 * <li>{@link Car#PERMISSION_ENERGY} to read property. 412 * <li>Property is not writable. 413 * </ul> 414 */ 415 @RequiresPermission(Car.PERMISSION_ENERGY) 416 @AddedInOrBefore(majorVersion = 33) 417 public static final int FUEL_LEVEL = 291504903; 418 /** 419 * Fuel door open. 420 * 421 * <p>Property Config: 422 * <ul> 423 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} 424 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 425 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 426 * <li>{@code Boolean} property type 427 * </ul> 428 * 429 * <p>Required Permissions: 430 * <ul> 431 * <li>{@link Car#PERMISSION_ENERGY_PORTS} to read property. 432 * <li>Signature permission, android.car.permission.CONTROL_CAR_ENERGY_PORTS, to write 433 * property. 434 * </ul> 435 */ 436 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY_PORTS)) 437 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ENERGY_PORTS)) 438 @AddedInOrBefore(majorVersion = 33) 439 public static final int FUEL_DOOR_OPEN = 287310600; 440 /** 441 * EV battery level in watt-hours (Wh), if EV or hybrid. 442 * 443 * <p>Property Config: 444 * <ul> 445 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 446 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 447 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 448 * <li>{@code Float} property type 449 * </ul> 450 * 451 * <p>Required Permissions: 452 * <ul> 453 * <li>{@link Car#PERMISSION_ENERGY} to read property. 454 * <li>Property is not writable. 455 * </ul> 456 */ 457 @RequiresPermission(Car.PERMISSION_ENERGY) 458 @AddedInOrBefore(majorVersion = 33) 459 public static final int EV_BATTERY_LEVEL = 291504905; 460 /** 461 * EV charge port open. 462 * 463 * <p>Property Config: 464 * <ul> 465 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} 466 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 467 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 468 * <li>{@code Boolean} property type 469 * </ul> 470 * 471 * <p>Required Permissions: 472 * <ul> 473 * <li>{@link Car#PERMISSION_ENERGY_PORTS} to read property. 474 * <li>Signature permission, android.car.permission.CONTROL_CAR_ENERGY_PORTS, to write 475 * property. 476 * </ul> 477 */ 478 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY_PORTS)) 479 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ENERGY_PORTS)) 480 @AddedInOrBefore(majorVersion = 33) 481 public static final int EV_CHARGE_PORT_OPEN = 287310602; 482 /** 483 * EV charge port connected. 484 * 485 * <p>Property Config: 486 * <ul> 487 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 488 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 489 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 490 * <li>{@code Boolean} property type 491 * </ul> 492 * 493 * <p>Required Permissions: 494 * <ul> 495 * <li>{@link Car#PERMISSION_ENERGY_PORTS} to read property. 496 * <li>Property is not writable. 497 * </ul> 498 */ 499 @RequiresPermission(Car.PERMISSION_ENERGY_PORTS) 500 @AddedInOrBefore(majorVersion = 33) 501 public static final int EV_CHARGE_PORT_CONNECTED = 287310603; 502 /** 503 * EV instantaneous charge rate in milliwatts. 504 * 505 * <p>Positive rate indicates battery is being charged, and Negative rate indicates battery 506 * being discharged. 507 * 508 * <p>Property Config: 509 * <ul> 510 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 511 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 512 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 513 * <li>{@code Float} property type 514 * </ul> 515 * 516 * <p>Required Permissions: 517 * <ul> 518 * <li>{@link Car#PERMISSION_ENERGY} to read property. 519 * <li>Property is not writable. 520 * </ul> 521 */ 522 @RequiresPermission(Car.PERMISSION_ENERGY) 523 @AddedInOrBefore(majorVersion = 33) 524 public static final int EV_BATTERY_INSTANTANEOUS_CHARGE_RATE = 291504908; 525 /** 526 * Range remaining in meters. 527 * 528 * <p>Range remaining accounts for all energy sources in a vehicle. For example, a hybrid car's 529 * range will be the sum of the ranges based on fuel and battery. 530 * 531 * <p>Property Config: 532 * <ul> 533 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} 534 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 535 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 536 * <li>{@code Float} property type 537 * </ul> 538 * 539 * <p>Required Permissions: 540 * <ul> 541 * <li>{@link Car#PERMISSION_ENERGY} to read property. 542 * <li>Signature permission, android.car.permission.ADJUST_RANGE_REMAINING, to write property. 543 * </ul> 544 */ 545 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY)) 546 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_ADJUST_RANGE_REMAINING)) 547 @AddedInOrBefore(majorVersion = 33) 548 public static final int RANGE_REMAINING = 291504904; 549 /** 550 * Tire pressure in kilopascals. 551 * 552 * min/max value indicates tire pressure sensor range. Each tire will have a separate min/max 553 * value denoted by its areaConfig.areaId. 554 * The property is protected by the signature permission: android.car.permission.CAR_TIRES. 555 */ 556 @RequiresPermission(Car.PERMISSION_TIRES) 557 @AddedInOrBefore(majorVersion = 33) 558 public static final int TIRE_PRESSURE = 392168201; 559 /** 560 * Critically low tire pressure 561 * 562 * <p>This property indicates the critically low pressure threshold for each tire. It 563 * indicates when it is time for tires to be replaced or fixed. The value 564 * must be less than or equal to minFloatValue in {@link VehiclePropertyIds#TIRE_PRESSURE}. 565 * <p>Minimum and maximum property values 566 * (that is, {@code minFloatValue}, {@code maxFloatValue}) are not applicable to this property. 567 */ 568 @RequiresPermission(Car.PERMISSION_TIRES) 569 @AddedInOrBefore(majorVersion = 33) 570 public static final int CRITICALLY_LOW_TIRE_PRESSURE = 392168202; 571 /** 572 * Currently selected gear by user. 573 * 574 * <ul> 575 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 576 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 577 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 578 * <li>{@code Integer} property type 579 * </ul> 580 * 581 * <p> See {@link VehicleGear} for gear value enum. 582 * 583 * <p>configArray represents the list of supported gears for the vehicle. For example, 584 * configArray for an EV vehicle is set as follows: 585 * 586 * <ul> 587 * <li>configArray[0] = {@link VehicleGear#GEAR_REVERSE} 588 * <li>configArray[1] = {@link VehicleGear#GEAR_PARK} 589 * <li>configArray[2] = {@link VehicleGear#GEAR_DRIVE} 590 * </ul> 591 * 592 * <p>Example automatic transmission configArray: 593 * 594 * <ul> 595 * <li>configArray[0] = {@link VehicleGear#GEAR_NEUTRAL} 596 * <li>configArray[1] = {@link VehicleGear#GEAR_REVERSE} 597 * <li>configArray[2] = {@link VehicleGear#GEAR_PARK} 598 * <li>configArray[3] = {@link VehicleGear#GEAR_DRIVE} 599 * <li>configArray[4] = {@link VehicleGear#GEAR_FIRST} 600 * <li>configArray[5] = {@link VehicleGear#GEAR_SECOND} 601 * <li>... 602 * </ul> 603 * 604 * <p>Example manual transmission configArray: 605 * 606 * <ul> 607 * <li>configArray[0] = {@link VehicleGear#GEAR_NEUTRAL} 608 * <li>configArray[1] = {@link VehicleGear#GEAR_REVERSE} 609 * <li>configArray[4] = {@link VehicleGear#GEAR_FIRST} 610 * <li>configArray[5] = {@link VehicleGear#GEAR_SECOND} 611 * <li>... 612 * </ul> 613 * 614 * <p>Requires permission: {@link Car#PERMISSION_POWERTRAIN}. 615 */ 616 @RequiresPermission(Car.PERMISSION_POWERTRAIN) 617 @AddedInOrBefore(majorVersion = 33) 618 public static final int GEAR_SELECTION = 289408000; 619 /** 620 * Vehicle transmission's current {@link VehicleGear}. 621 * 622 * <ul> 623 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 624 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 625 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 626 * <li>{@code Integer} property type 627 * </ul> 628 * 629 * <p>{@code CURRENT_GEAR}'s value may not match that of {@link 630 * VehiclePropertyIds#GEAR_SELECTION}. For example, if the {@link 631 * VehiclePropertyIds#GEAR_SELECTION} is {@link VehicleGear#GEAR_DRIVE} in a vehicle with an 632 * automatic transmission, the {@code CURRENT_GEAR} will be one of {@link 633 * VehicleGear#GEAR_FIRST}, {@link VehicleGear#GEAR_SECOND}, etc, which reflects the actual gear 634 * the transmission is currently running in. 635 * 636 * <p>configArray represents the list of supported {@link VehicleGear}s for {@code 637 * CURRENT_GEAR}. For example, the configArray for an EV vehicle is set as follows: 638 * 639 * <ul> 640 * <li>configArray[0] = {@link VehicleGear#GEAR_REVERSE} 641 * <li>configArray[1] = {@link VehicleGear#GEAR_PARK} 642 * <li>configArray[2] = {@link VehicleGear#GEAR_DRIVE} 643 * </ul> 644 * 645 * <p>Example automatic transmission configArray: 646 * 647 * <ul> 648 * <li>configArray[0] = {@link VehicleGear#GEAR_NEUTRAL} 649 * <li>configArray[1] = {@link VehicleGear#GEAR_REVERSE} 650 * <li>configArray[2] = {@link VehicleGear#GEAR_PARK} 651 * <li>configArray[4] = {@link VehicleGear#GEAR_FIRST} 652 * <li>configArray[5] = {@link VehicleGear#GEAR_SECOND} 653 * <li>... 654 * </ul> 655 * 656 * <p>Example manual transmission configArray: 657 * 658 * <ul> 659 * <li>configArray[0] = {@link VehicleGear#GEAR_NEUTRAL} 660 * <li>configArray[1] = {@link VehicleGear#GEAR_REVERSE} 661 * <li>configArray[4] = {@link VehicleGear#GEAR_FIRST} 662 * <li>configArray[5] = {@link VehicleGear#GEAR_SECOND} 663 * <li>... 664 * </ul> 665 * 666 * <p>Requires permission: {@link Car#PERMISSION_POWERTRAIN}. 667 */ 668 @RequiresPermission(Car.PERMISSION_POWERTRAIN) 669 @AddedInOrBefore(majorVersion = 33) 670 public static final int CURRENT_GEAR = 289408001; 671 /** 672 * Parking brake state. 673 * 674 * <ul> 675 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 676 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 677 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 678 * <li>{@code Boolean} property type 679 * </ul> 680 * 681 * <p>Requires permission: {@link Car#PERMISSION_POWERTRAIN}. 682 */ 683 @RequiresPermission(Car.PERMISSION_POWERTRAIN) 684 @AddedInOrBefore(majorVersion = 33) 685 public static final int PARKING_BRAKE_ON = 287310850; 686 /** 687 * Auto-apply parking brake. 688 * 689 * <ul> 690 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 691 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 692 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 693 * <li>{@code Boolean} property type 694 * </ul> 695 * 696 * <p>Requires permission: {@link Car#PERMISSION_POWERTRAIN}. 697 */ 698 @RequiresPermission(Car.PERMISSION_POWERTRAIN) 699 @AddedInOrBefore(majorVersion = 33) 700 public static final int PARKING_BRAKE_AUTO_APPLY = 287310851; 701 /** 702 * Warning for fuel low level. 703 * 704 * <p>{@code FUEL_LEVEL_LOW} corresponds to the low fuel warning on the dashboard. Once {@code 705 * FUEL_LEVEL_LOW} is set, it should not be cleared until more fuel is added to the vehicle. 706 * This property may take into account all fuel sources for a vehicle - for example: 707 * <ul> 708 * <li>For a gas powered vehicle, this property is based solely on gas level. 709 * <li>For a battery powered vehicle, this property is based solely on battery level. 710 * <li>For a hybrid vehicle, this property may be based on the combination of gas and 711 * battery levels, at the OEM's discretion. 712 * </ul> 713 * 714 * <p>Property Config: 715 * <ul> 716 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 717 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 718 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 719 * <li>{@code Boolean} property type 720 * </ul> 721 * 722 * <p>Required Permissions: 723 * <ul> 724 * <li>{@link Car#PERMISSION_ENERGY} to read property. 725 * <li>Property is not writable. 726 * </ul> 727 */ 728 @RequiresPermission(Car.PERMISSION_ENERGY) 729 @AddedInOrBefore(majorVersion = 33) 730 public static final int FUEL_LEVEL_LOW = 287310853; 731 /** 732 * Night mode. 733 * 734 * <ul> 735 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 736 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 737 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 738 * <li>{@code Boolean} property type 739 * </ul> 740 * 741 * <p>True indicates that the night mode sensor has detected that the car cabin environment has 742 * low light. 743 * 744 * <p>Requires permission: {@link Car#PERMISSION_EXTERIOR_ENVIRONMENT}. 745 */ 746 @RequiresPermission(Car.PERMISSION_EXTERIOR_ENVIRONMENT) 747 @AddedInOrBefore(majorVersion = 33) 748 public static final int NIGHT_MODE = 287310855; 749 /** 750 * State of the vehicles turn signals 751 * The property is protected by the signature permission: 752 * android.car.permission.CAR_EXTERIOR_LIGHTS . 753 */ 754 @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS) 755 @AddedInOrBefore(majorVersion = 33) 756 public static final int TURN_SIGNAL_STATE = 289408008; 757 /** 758 * Vehicle's ignition state. 759 * 760 * <p>See {@link VehicleIgnitionState} for possible values for {@code IGNITION_STATE}. 761 * 762 * <p>Property Config: 763 * <ul> 764 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 765 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 766 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 767 * <li>{@code Integer} property type 768 * </ul> 769 * 770 * <p>Required Permissions: 771 * <ul> 772 * <li>{@link Car#PERMISSION_POWERTRAIN} to read property. 773 * <li>Property is not writable. 774 * </ul> 775 */ 776 @RequiresPermission(Car.PERMISSION_POWERTRAIN) 777 @AddedInOrBefore(majorVersion = 33) 778 public static final int IGNITION_STATE = 289408009; 779 /** 780 * ABS is active 781 * The property is protected by the signature permission: 782 * android.car.permission.CAR_DYNAMICS_STATE. 783 */ 784 @RequiresPermission(Car.PERMISSION_CAR_DYNAMICS_STATE) 785 @AddedInOrBefore(majorVersion = 33) 786 public static final int ABS_ACTIVE = 287310858; 787 /** 788 * Traction Control is active 789 * The property is protected by the signature permission: 790 * android.car.permission.CAR_DYNAMICS_STATE. 791 */ 792 @RequiresPermission(Car.PERMISSION_CAR_DYNAMICS_STATE) 793 @AddedInOrBefore(majorVersion = 33) 794 public static final int TRACTION_CONTROL_ACTIVE = 287310859; 795 /** 796 * Fan speed setting 797 * The property is protected by the signature permission: 798 * android.car.permission.CONTROL_CAR_CLIMATE. 799 */ 800 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 801 @AddedInOrBefore(majorVersion = 33) 802 public static final int HVAC_FAN_SPEED = 356517120; 803 /** 804 * Fan direction setting 805 * The property is protected by the signature permission: 806 * android.car.permission.CONTROL_CAR_CLIMATE. 807 */ 808 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 809 @AddedInOrBefore(majorVersion = 33) 810 public static final int HVAC_FAN_DIRECTION = 356517121; 811 /** 812 * HVAC current temperature in celsius. 813 * The property is protected by the signature permission: 814 * android.car.permission.CONTROL_CAR_CLIMATE. 815 */ 816 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 817 @AddedInOrBefore(majorVersion = 33) 818 public static final int HVAC_TEMPERATURE_CURRENT = 358614274; 819 /** 820 * HVAC, target temperature set. 821 * 822 * <p>The {@code configArray} is used to indicate the valid values for HVAC in Fahrenheit and 823 * Celsius. Android might use it in the HVAC app UI. 824 * <p>The {@code configArray} is set as follows: 825 * <ul> 826 * <li>{@code configArray[0]} is [the lower bound of the supported temperature in Celsius] 827 * * 10. 828 * <li>{@code configArray[1]} is [the upper bound of the supported temperature in Celsius] 829 * * 10. 830 * <li>{@code configArray[2]} is [the increment in Celsius] * 10. 831 * <li>{@code configArray[3]} is 832 * [the lower bound of the supported temperature in Fahrenheit] * 10. 833 * <li>{@code configArray[4]} is 834 * [the upper bound of the supported temperature in Fahrenheit] * 10. 835 * <li>{@code configArray[5]} is [the increment in Fahrenheit] * 10. 836 * </ul> 837 * <p>For example, if the vehicle supports temperature values as: 838 * <pre> 839 * [16.0, 16.5, 17.0 ,..., 28.0] in Celsius 840 * [60.5, 61.5, 62.5 ,..., 85.5] in Fahrenheit 841 * </pre> 842 * <p>The {@code configArray} should be: 843 * <pre> 844 * configArray = {160, 280, 5, 605, 855, 10}. 845 * </pre> 846 * <p>If the vehicle supports {@link VehiclePropertyIds#HVAC_TEMPERATURE_VALUE_SUGGESTION}, 847 * the application can use that property to get the suggested value before setting 848 * {@code HVAC_TEMPERATURE_SET}. Otherwise, the application may choose the 849 * value in {@code configArray} of {@code HVAC_TEMPERATURE_SET} by itself. 850 */ 851 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 852 @AddedInOrBefore(majorVersion = 33) 853 public static final int HVAC_TEMPERATURE_SET = 358614275; 854 /** 855 * Suggested values for setting HVAC temperature. 856 * 857 * <p>Implement the property to help applications understand the closest supported temperature 858 * value in Celsius or Fahrenheit. 859 * <ul> 860 * <li>{@code floatValues[0]} is the requested value that an application wants to set a 861 * temperature to. 862 * <li>{@code floatValues[1]} is the unit for {@code floatValues[0]}. It should be one of 863 * ({@link VehicleUnit#CELSIUS}, {@link VehicleUnit#FAHRENHEIT}). 864 * <li>{@code floatValues[2]} is the value OEMs suggested in CELSIUS. This value is not 865 * included in the request. 866 * <li>{@code floatValues[3]} is the value OEMs suggested in FAHRENHEIT. This value is not 867 * included in the request. 868 * </ul> 869 * <p>An application calls 870 * {@link android.car.hardware.property.CarPropertyManager#setProperty(Class, int, int, Object)} 871 * with the requested value and unit for the value. OEMs need to return the suggested values 872 * in {@code floatValues[2]} and {@code floatValues[3]} by 873 * {@link android.car.hardware.property.CarPropertyManager.CarPropertyEventCallback}. 874 * 875 * <p>For example, when a user uses the voice assistant to set HVAC temperature to 66.2 in 876 * Fahrenheit. 877 * <p>First, an application will set this property with the value 878 * [66.2, {@link VehicleUnit#FAHRENHEIT}, 0, 0]. If OEMs suggest to set 19.0 in Celsius 879 * or 66.5 in Fahrenheit for user's request, then car must generate a callback with property 880 * value [66.2, {@link VehicleUnit#FAHRENHEIT}, 19.0, 66.5]. After the voice assistant 881 * gets the callback, it will inform the user and set HVAC temperature to the suggested value. 882 * 883 * <p>Another example, an application receives 21 Celsius as the current temperature value by 884 * querying {@link VehiclePropertyIds#HVAC_TEMPERATURE_SET}. But the application wants to know 885 * what value is displayed on the car's UI in Fahrenheit. 886 * <p>For this, the application sets the property to 887 * [21, {@link VehicleUnit#CELSIUS}, 0, 0]. If the suggested value by the OEM for 21 888 * Celsius is 70 Fahrenheit, then car must generate a callback with property value 889 * [21, {@link VehicleUnit#CELSIUS}, 21.0, 70.0]. In this case, the application can know 890 * that the value is 70.0 Fahrenheit in the car’s UI. 891 */ 892 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 893 @AddedInOrBefore(majorVersion = 33) 894 public static final int HVAC_TEMPERATURE_VALUE_SUGGESTION = 291570965; 895 /** 896 * On/off defrost for designated window 897 * The property is protected by the signature permission: 898 * android.car.permission.CONTROL_CAR_CLIMATE. 899 */ 900 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 901 @AddedInOrBefore(majorVersion = 33) 902 public static final int HVAC_DEFROSTER = 320865540; 903 /** 904 * On/off AC for designated areaId 905 * The property is protected by the signature permission: 906 * android.car.permission.CONTROL_CAR_CLIMATE. 907 */ 908 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 909 @AddedInOrBefore(majorVersion = 33) 910 public static final int HVAC_AC_ON = 354419973; 911 /** 912 * On/off max AC 913 * The property is protected by the signature permission: 914 * android.car.permission.CONTROL_CAR_CLIMATE. 915 */ 916 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 917 @AddedInOrBefore(majorVersion = 33) 918 public static final int HVAC_MAX_AC_ON = 354419974; 919 /** 920 * On/off max defrost 921 * The property is protected by the signature permission: 922 * android.car.permission.CONTROL_CAR_CLIMATE. 923 */ 924 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 925 @AddedInOrBefore(majorVersion = 33) 926 public static final int HVAC_MAX_DEFROST_ON = 354419975; 927 /** 928 * Recirculation on/off 929 * The property is protected by the signature permission: 930 * android.car.permission.CONTROL_CAR_CLIMATE. 931 */ 932 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 933 @AddedInOrBefore(majorVersion = 33) 934 public static final int HVAC_RECIRC_ON = 354419976; 935 /** 936 * Enable temperature coupling between areas. 937 * The property is protected by the signature permission: 938 * android.car.permission.CONTROL_CAR_CLIMATE. 939 */ 940 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 941 @AddedInOrBefore(majorVersion = 33) 942 public static final int HVAC_DUAL_ON = 354419977; 943 /** 944 * On/off automatic mode 945 * The property is protected by the signature permission: 946 * android.car.permission.CONTROL_CAR_CLIMATE. 947 */ 948 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 949 @AddedInOrBefore(majorVersion = 33) 950 public static final int HVAC_AUTO_ON = 354419978; 951 /** 952 * Seat heating/cooling 953 * The property is protected by the signature permission: 954 * android.car.permission.CONTROL_CAR_CLIMATE. 955 */ 956 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 957 @AddedInOrBefore(majorVersion = 33) 958 public static final int HVAC_SEAT_TEMPERATURE = 356517131; 959 /** 960 * Side Mirror Heat 961 * The property is protected by the signature permission: 962 * android.car.permission.CONTROL_CAR_CLIMATE. 963 */ 964 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 965 @AddedInOrBefore(majorVersion = 33) 966 public static final int HVAC_SIDE_MIRROR_HEAT = 339739916; 967 /** 968 * Steering Wheel Heating/Cooling 969 * The property is protected by the signature permission: 970 * android.car.permission.CONTROL_CAR_CLIMATE. 971 */ 972 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 973 @AddedInOrBefore(majorVersion = 33) 974 public static final int HVAC_STEERING_WHEEL_HEAT = 289408269; 975 /** 976 * Temperature units for display 977 * The property is protected by the signature permission: 978 * android.car.permission.CONTROL_CAR_CLIMATE. 979 */ 980 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 981 @AddedInOrBefore(majorVersion = 33) 982 public static final int HVAC_TEMPERATURE_DISPLAY_UNITS = 289408270; 983 /** 984 * Actual fan speed 985 * The property is protected by the signature permission: 986 * android.car.permission.CONTROL_CAR_CLIMATE. 987 */ 988 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 989 @AddedInOrBefore(majorVersion = 33) 990 public static final int HVAC_ACTUAL_FAN_SPEED_RPM = 356517135; 991 /** 992 * Represents global power state for HVAC. Setting this property to false 993 * MAY mark some properties that control individual HVAC features/subsystems 994 * to UNAVAILABLE state. Setting this property to true MAY mark some 995 * properties that control individual HVAC features/subsystems to AVAILABLE 996 * state (unless any/all of them are UNAVAILABLE on their own individual 997 * merits). 998 * The property is protected by the signature permission: 999 * android.car.permission.CONTROL_CAR_CLIMATE. 1000 */ 1001 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1002 @AddedInOrBefore(majorVersion = 33) 1003 public static final int HVAC_POWER_ON = 354419984; 1004 /** 1005 * Fan Positions Available 1006 * The property is protected by the signature permission: 1007 * android.car.permission.CONTROL_CAR_CLIMATE. 1008 */ 1009 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1010 @AddedInOrBefore(majorVersion = 33) 1011 public static final int HVAC_FAN_DIRECTION_AVAILABLE = 356582673; 1012 /** 1013 * Automatic recirculation on/off 1014 * The property is protected by the signature permission: 1015 * android.car.permission.CONTROL_CAR_CLIMATE. 1016 */ 1017 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1018 @AddedInOrBefore(majorVersion = 33) 1019 public static final int HVAC_AUTO_RECIRC_ON = 354419986; 1020 /** 1021 * Seat ventilation 1022 * The property is protected by the signature permission: 1023 * android.car.permission.CONTROL_CAR_CLIMATE. 1024 */ 1025 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1026 @AddedInOrBefore(majorVersion = 33) 1027 public static final int HVAC_SEAT_VENTILATION = 356517139; 1028 /** 1029 * ELECTRIC DEFROSTER 1030 * The property is a read and write controllable and is protected by the signature permission: 1031 * android.car.permission.CONTROL_CAR_CLIMATE. 1032 * 1033 * @hide 1034 */ 1035 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1036 @AddedInOrBefore(majorVersion = 33) 1037 @SystemApi 1038 public static final int HVAC_ELECTRIC_DEFROSTER_ON = 320865556; 1039 /** 1040 * Distance units for display. 1041 * 1042 * <p>Indicates which units the car is using to display distances to the user. 1043 * 1044 * <p>configArray represents the list of supported units for {@code 1045 * DISTANCE_DISPLAY_UNITS}. Here is an example configArray: 1046 * <ul> 1047 * <li>configArray[0] = {@link VehicleUnit#METER} 1048 * <li>configArray[1] = {@link VehicleUnit#KILOMETER} 1049 * <li>configArray[2] = {@link VehicleUnit#MILE} 1050 * </ul> 1051 * 1052 * <p>Property Config: 1053 * <ul> 1054 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} 1055 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1056 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1057 * <li>{@code Integer} property type 1058 * </ul> 1059 * 1060 * <p>Required Permissions: 1061 * <ul> 1062 * <li>{@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property. 1063 * <li>Signature permissions, android.car.permission.CONTROL_CAR_DISPLAY_UNITS and 1064 * android.car.permission.CAR_VENDOR_EXTENSION, to write property. 1065 * </ul> 1066 */ 1067 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS)) 1068 @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS, 1069 Car.PERMISSION_VENDOR_EXTENSION})) 1070 @AddedInOrBefore(majorVersion = 33) 1071 public static final int DISTANCE_DISPLAY_UNITS = 289408512; 1072 /** 1073 * Fuel volume units for display. 1074 * 1075 * <p>Indicates which units the car is using to display fuel volume to the user. 1076 * 1077 * <p>configArray represents the list of supported units for {@code 1078 * FUEL_VOLUME_DISPLAY_UNITS}. Here is an example configArray: 1079 * <ul> 1080 * <li>configArray[0] = {@link VehicleUnit#LITER} 1081 * <li>configArray[1] = {@link VehicleUnit#US_GALLON} 1082 * </ul> 1083 * 1084 * <p>Property Config: 1085 * <ul> 1086 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} 1087 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1088 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1089 * <li>{@code Integer} property type 1090 * </ul> 1091 * 1092 * <p>Required Permissions: 1093 * <ul> 1094 * <li>{@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property. 1095 * <li>Signature permissions, android.car.permission.CONTROL_CAR_DISPLAY_UNITS and 1096 * android.car.permission.CAR_VENDOR_EXTENSION, to write property. 1097 * </ul> 1098 */ 1099 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS)) 1100 @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS, 1101 Car.PERMISSION_VENDOR_EXTENSION})) 1102 @AddedInOrBefore(majorVersion = 33) 1103 public static final int FUEL_VOLUME_DISPLAY_UNITS = 289408513; 1104 /** 1105 * Tire pressure units for display. 1106 * 1107 * <p>Indicates which units the car is using to display tire pressure to the user. 1108 * 1109 * <p>configArray represents the list of supported units for {@code 1110 * TIRE_PRESSURE_DISPLAY_UNITS}. Here is an example configArray: 1111 * <ul> 1112 * <li>configArray[0] = {@link VehicleUnit#KILOPASCAL} 1113 * <li>configArray[1] = {@link VehicleUnit#PSI} 1114 * <li>configArray[2] = {@link VehicleUnit#BAR} 1115 * </ul> 1116 * 1117 * <p>Property Config: 1118 * <ul> 1119 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} 1120 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1121 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1122 * <li>{@code Integer} property type 1123 * </ul> 1124 * 1125 * <p>Required Permissions: 1126 * <ul> 1127 * <li>{@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property. 1128 * <li>Signature permissions, android.car.permission.CONTROL_CAR_DISPLAY_UNITS and 1129 * android.car.permission.CAR_VENDOR_EXTENSION, to write property. 1130 * </ul> 1131 */ 1132 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS)) 1133 @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS, 1134 Car.PERMISSION_VENDOR_EXTENSION})) 1135 @AddedInOrBefore(majorVersion = 33) 1136 public static final int TIRE_PRESSURE_DISPLAY_UNITS = 289408514; 1137 /** 1138 * EV battery units for display. 1139 * 1140 * <p>Indicates which units the vehicle is using to display EV battery information to the user. 1141 * 1142 * <p>configArray represents the list of supported units for {@code 1143 * EV_BATTERY_DISPLAY_UNITS}. Here is an example configArray: 1144 * <ul> 1145 * <li>configArray[0] = {@link VehicleUnit#WATT_HOUR} 1146 * <li>configArray[1] = {@link VehicleUnit#AMPERE_HOURS} 1147 * <li>configArray[2] = {@link VehicleUnit#KILOWATT_HOUR} 1148 * </ul> 1149 * 1150 * <p>Property Config: 1151 * <ul> 1152 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} 1153 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1154 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1155 * <li>{@code Integer} property type 1156 * </ul> 1157 * 1158 * <p>Required Permissions: 1159 * <ul> 1160 * <li>{@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property. 1161 * <li>Signature permissions, android.car.permission.CONTROL_CAR_DISPLAY_UNITS and 1162 * android.car.permission.CAR_VENDOR_EXTENSION, to write property. 1163 * </ul> 1164 */ 1165 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS)) 1166 @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS, 1167 Car.PERMISSION_VENDOR_EXTENSION})) 1168 @AddedInOrBefore(majorVersion = 33) 1169 public static final int EV_BATTERY_DISPLAY_UNITS = 289408515; 1170 /** 1171 * Speed units for display. 1172 * 1173 * <p>Indicates type of units the vehicle is using to display speed to user. 1174 * 1175 * <p>configArray represents the list of supported units for {@code 1176 * VEHICLE_SPEED_DISPLAY_UNITS}. Here is an example configArray: 1177 * <ul> 1178 * <li>configArray[0] = {@link VehicleUnit#METER_PER_SEC} 1179 * <li>configArray[1] = {@link VehicleUnit#MILES_PER_HOUR} 1180 * <li>configArray[2] = {@link VehicleUnit#KILOMETERS_PER_HOUR} 1181 * </ul> 1182 * 1183 * <p>Property Config: 1184 * <ul> 1185 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} 1186 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1187 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1188 * <li>{@code Integer} property type 1189 * </ul> 1190 * 1191 * <p>Required Permissions: 1192 * <ul> 1193 * <li>{@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property. 1194 * <li>Signature permissions, android.car.permission.CONTROL_CAR_DISPLAY_UNITS and 1195 * android.car.permission.CAR_VENDOR_EXTENSION, to write property. 1196 * </ul> 1197 */ 1198 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS)) 1199 @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS, 1200 Car.PERMISSION_VENDOR_EXTENSION})) 1201 @AddedInOrBefore(majorVersion = 33) 1202 public static final int VEHICLE_SPEED_DISPLAY_UNITS = 289408516; 1203 /** 1204 * Fuel consumption units for display. 1205 * 1206 * <p>Indicates type of units the car is using to display fuel consumption information to user. 1207 * 1208 * <p>{@code true} indicates units are distance over volume such as MPG. 1209 * 1210 * <p>{@code false} indicates units are volume over distance such as L/100KM. 1211 * 1212 * <p>Property Config: 1213 * <ul> 1214 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} 1215 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1216 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1217 * <li>{@code Boolean} property type 1218 * </ul> 1219 * 1220 * <p>Required Permissions: 1221 * <ul> 1222 * <li>{@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property. 1223 * <li>Signature permissions, android.car.permission.CONTROL_CAR_DISPLAY_UNITS and 1224 * android.car.permission.CAR_VENDOR_EXTENSION, to write property. 1225 * </ul> 1226 */ 1227 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS)) 1228 @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS, 1229 Car.PERMISSION_VENDOR_EXTENSION})) 1230 @AddedInOrBefore(majorVersion = 33) 1231 public static final int FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME = 287311364; 1232 /** 1233 * Outside temperature in celsius. 1234 * 1235 * <ul> 1236 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1237 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1238 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 1239 * <li>{@code Float} property type 1240 * </ul> 1241 * 1242 * <p>Requires permission: {@link Car#PERMISSION_EXTERIOR_ENVIRONMENT}. 1243 */ 1244 @RequiresPermission(Car.PERMISSION_EXTERIOR_ENVIRONMENT) 1245 @AddedInOrBefore(majorVersion = 33) 1246 public static final int ENV_OUTSIDE_TEMPERATURE = 291505923; 1247 /** 1248 * Property to control power state of application processor 1249 * 1250 * It is assumed that AP's power state is controller by separate power 1251 * controller. 1252 * The property is protected by the signature permission: android.car.permission.CAR_POWER. 1253 */ 1254 @RequiresPermission(Car.PERMISSION_CAR_POWER) 1255 @AddedInOrBefore(majorVersion = 33) 1256 public static final int AP_POWER_STATE_REQ = 289475072; 1257 /** 1258 * Property to report power state of application processor 1259 * 1260 * It is assumed that AP's power state is controller by separate power 1261 * controller. 1262 * The property is protected by the signature permission: android.car.permission.CAR_POWER. 1263 */ 1264 @RequiresPermission(Car.PERMISSION_CAR_POWER) 1265 @AddedInOrBefore(majorVersion = 33) 1266 public static final int AP_POWER_STATE_REPORT = 289475073; 1267 /** 1268 * Property to report bootup reason for the current power on. This is a 1269 * static property that will not change for the whole duration until power 1270 * off. For example, even if user presses power on button after automatic 1271 * power on with door unlock, bootup reason must stay with 1272 * VehicleApPowerBootupReason#USER_UNLOCK. 1273 * The property is protected by the signature permission: android.car.permission.CAR_POWER. 1274 */ 1275 @RequiresPermission(Car.PERMISSION_CAR_POWER) 1276 @AddedInOrBefore(majorVersion = 33) 1277 public static final int AP_POWER_BOOTUP_REASON = 289409538; 1278 /** 1279 * Property to represent brightness of the display. Some cars have single 1280 * control for the brightness of all displays and this property is to share 1281 * change in that control. 1282 * The property is protected by the signature permission: android.car.permission.CAR_POWER. 1283 */ 1284 @RequiresPermission(Car.PERMISSION_CAR_POWER) 1285 @AddedInOrBefore(majorVersion = 33) 1286 public static final int DISPLAY_BRIGHTNESS = 289409539; 1287 /** 1288 * Property to feed H/W input events to android 1289 */ 1290 @AddedInOrBefore(majorVersion = 33) 1291 public static final int HW_KEY_INPUT = 289475088; 1292 /** 1293 * Door position 1294 * 1295 * This is an integer in case a door may be set to a particular position. 1296 * Max value indicates fully open, min value (0) indicates fully closed. 1297 * The property is protected by the signature permission: 1298 * android.car.permission.CONTROL_CAR_DOORS. 1299 */ 1300 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_DOORS) 1301 @AddedInOrBefore(majorVersion = 33) 1302 public static final int DOOR_POS = 373295872; 1303 /** 1304 * Door move 1305 * The property is protected by the signature permission: 1306 * android.car.permission.CONTROL_CAR_DOORS. 1307 */ 1308 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_DOORS) 1309 @AddedInOrBefore(majorVersion = 33) 1310 public static final int DOOR_MOVE = 373295873; 1311 /** 1312 * Door lock 1313 * The property is protected by the signature permission: 1314 * android.car.permission.CONTROL_CAR_DOORS. 1315 */ 1316 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_DOORS) 1317 @AddedInOrBefore(majorVersion = 33) 1318 public static final int DOOR_LOCK = 371198722; 1319 /** 1320 * Mirror Z Position 1321 * The property is protected by the signature permission: 1322 * android.car.permission.CONTROL_CAR_MIRRORS. 1323 */ 1324 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS) 1325 @AddedInOrBefore(majorVersion = 33) 1326 public static final int MIRROR_Z_POS = 339741504; 1327 /** 1328 * Mirror Z Move 1329 * The property is protected by the signature permission: 1330 * android.car.permission.CONTROL_CAR_MIRRORS. 1331 */ 1332 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS) 1333 @AddedInOrBefore(majorVersion = 33) 1334 public static final int MIRROR_Z_MOVE = 339741505; 1335 /** 1336 * Mirror Y Position 1337 * The property is protected by the signature permission: 1338 * android.car.permission.CONTROL_CAR_MIRRORS. 1339 */ 1340 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS) 1341 @AddedInOrBefore(majorVersion = 33) 1342 public static final int MIRROR_Y_POS = 339741506; 1343 /** 1344 * Mirror Y Move 1345 * The property is protected by the signature permission: 1346 * android.car.permission.CONTROL_CAR_MIRRORS. 1347 */ 1348 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS) 1349 @AddedInOrBefore(majorVersion = 33) 1350 public static final int MIRROR_Y_MOVE = 339741507; 1351 /** 1352 * Mirror Lock 1353 * The property is protected by the signature permission: 1354 * android.car.permission.CONTROL_CAR_MIRRORS. 1355 */ 1356 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS) 1357 @AddedInOrBefore(majorVersion = 33) 1358 public static final int MIRROR_LOCK = 287312708; 1359 /** 1360 * Mirror Fold 1361 * The property is protected by the signature permission: 1362 * android.car.permission.CONTROL_CAR_MIRRORS. 1363 */ 1364 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS) 1365 @AddedInOrBefore(majorVersion = 33) 1366 public static final int MIRROR_FOLD = 287312709; 1367 /** 1368 * Seat memory select 1369 * 1370 * This parameter selects the memory preset to use to select the seat 1371 * position. The minValue is always 0, and the maxValue determines the 1372 * number of seat positions available. 1373 * The property is protected by the signature permission: 1374 * android.car.permission.CONTROL_CAR_SEATS. 1375 */ 1376 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1377 @AddedInOrBefore(majorVersion = 33) 1378 public static final int SEAT_MEMORY_SELECT = 356518784; 1379 /** 1380 * Seat memory set 1381 * 1382 * This setting allows the user to save the current seat position settings 1383 * into the selected preset slot. The maxValue for each seat position 1384 * must match the maxValue for SEAT_MEMORY_SELECT. 1385 * The property is protected by the signature permission: 1386 * android.car.permission.CONTROL_CAR_SEATS. 1387 */ 1388 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1389 @AddedInOrBefore(majorVersion = 33) 1390 public static final int SEAT_MEMORY_SET = 356518785; 1391 /** 1392 * Seatbelt buckled 1393 * 1394 * True indicates belt is buckled. 1395 * The property is protected by the signature permission: 1396 * android.car.permission.CONTROL_CAR_SEATS. 1397 */ 1398 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1399 @AddedInOrBefore(majorVersion = 33) 1400 public static final int SEAT_BELT_BUCKLED = 354421634; 1401 /** 1402 * Seatbelt height position 1403 * The property is protected by the signature permission: 1404 * android.car.permission.CONTROL_CAR_SEATS. 1405 */ 1406 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1407 @AddedInOrBefore(majorVersion = 33) 1408 public static final int SEAT_BELT_HEIGHT_POS = 356518787; 1409 /** 1410 * Seatbelt height move 1411 * The property is protected by the signature permission: 1412 * android.car.permission.CONTROL_CAR_SEATS. 1413 */ 1414 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1415 @AddedInOrBefore(majorVersion = 33) 1416 public static final int SEAT_BELT_HEIGHT_MOVE = 356518788; 1417 /** 1418 * Seat fore/aft position 1419 * The property is protected by the signature permission: 1420 * android.car.permission.CONTROL_CAR_SEATS. 1421 */ 1422 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1423 @AddedInOrBefore(majorVersion = 33) 1424 public static final int SEAT_FORE_AFT_POS = 356518789; 1425 /** 1426 * Seat fore/aft move 1427 * The property is protected by the signature permission: 1428 * android.car.permission.CONTROL_CAR_SEATS. 1429 */ 1430 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1431 @AddedInOrBefore(majorVersion = 33) 1432 public static final int SEAT_FORE_AFT_MOVE = 356518790; 1433 /** 1434 * Seat backrest angle 1 position 1435 * The property is protected by the signature permission: 1436 * android.car.permission.CONTROL_CAR_SEATS. 1437 */ 1438 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1439 @AddedInOrBefore(majorVersion = 33) 1440 public static final int SEAT_BACKREST_ANGLE_1_POS = 356518791; 1441 /** 1442 * Seat backrest angle 1 move 1443 * 1444 * Moves the backrest forward or recline. 1445 * The property is protected by the signature permission: 1446 * android.car.permission.CONTROL_CAR_SEATS. 1447 */ 1448 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1449 @AddedInOrBefore(majorVersion = 33) 1450 public static final int SEAT_BACKREST_ANGLE_1_MOVE = 356518792; 1451 /** 1452 * Seat backrest angle 2 position 1453 * The property is protected by the signature permission: 1454 * android.car.permission.CONTROL_CAR_SEATS. 1455 */ 1456 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1457 @AddedInOrBefore(majorVersion = 33) 1458 public static final int SEAT_BACKREST_ANGLE_2_POS = 356518793; 1459 /** 1460 * Seat backrest angle 2 move 1461 * The property is protected by the signature permission: 1462 * android.car.permission.CONTROL_CAR_SEATS. 1463 */ 1464 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1465 @AddedInOrBefore(majorVersion = 33) 1466 public static final int SEAT_BACKREST_ANGLE_2_MOVE = 356518794; 1467 /** 1468 * Seat height position 1469 * The property is protected by the signature permission: 1470 * android.car.permission.CONTROL_CAR_SEATS. 1471 */ 1472 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1473 @AddedInOrBefore(majorVersion = 33) 1474 public static final int SEAT_HEIGHT_POS = 356518795; 1475 /** 1476 * Seat height move 1477 * The property is protected by the signature permission: 1478 * android.car.permission.CONTROL_CAR_SEATS. 1479 */ 1480 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1481 @AddedInOrBefore(majorVersion = 33) 1482 public static final int SEAT_HEIGHT_MOVE = 356518796; 1483 /** 1484 * Seat depth position 1485 * The property is protected by the signature permission: 1486 * android.car.permission.CONTROL_CAR_SEATS. 1487 */ 1488 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1489 @AddedInOrBefore(majorVersion = 33) 1490 public static final int SEAT_DEPTH_POS = 356518797; 1491 /** 1492 * Seat depth move 1493 * The property is protected by the signature permission: 1494 * android.car.permission.CONTROL_CAR_SEATS. 1495 */ 1496 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1497 @AddedInOrBefore(majorVersion = 33) 1498 public static final int SEAT_DEPTH_MOVE = 356518798; 1499 /** 1500 * Seat tilt position 1501 * The property is protected by the signature permission: 1502 * android.car.permission.CONTROL_CAR_SEATS. 1503 */ 1504 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1505 @AddedInOrBefore(majorVersion = 33) 1506 public static final int SEAT_TILT_POS = 356518799; 1507 /** 1508 * Seat tilt move 1509 * The property is protected by the signature permission: 1510 * android.car.permission.CONTROL_CAR_SEATS. 1511 */ 1512 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1513 @AddedInOrBefore(majorVersion = 33) 1514 public static final int SEAT_TILT_MOVE = 356518800; 1515 /** 1516 * Lumber fore/aft position 1517 * The property is protected by the signature permission: 1518 * android.car.permission.CONTROL_CAR_SEATS. 1519 */ 1520 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1521 @AddedInOrBefore(majorVersion = 33) 1522 public static final int SEAT_LUMBAR_FORE_AFT_POS = 356518801; 1523 /** 1524 * Lumbar fore/aft move 1525 * The property is protected by the signature permission: 1526 * android.car.permission.CONTROL_CAR_SEATS. 1527 */ 1528 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1529 @AddedInOrBefore(majorVersion = 33) 1530 public static final int SEAT_LUMBAR_FORE_AFT_MOVE = 356518802; 1531 /** 1532 * Lumbar side support position 1533 * The property is protected by the signature permission: 1534 * android.car.permission.CONTROL_CAR_SEATS. 1535 */ 1536 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1537 @AddedInOrBefore(majorVersion = 33) 1538 public static final int SEAT_LUMBAR_SIDE_SUPPORT_POS = 356518803; 1539 /** 1540 * Lumbar side support move 1541 * The property is protected by the signature permission: 1542 * android.car.permission.CONTROL_CAR_SEATS. 1543 */ 1544 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1545 @AddedInOrBefore(majorVersion = 33) 1546 public static final int SEAT_LUMBAR_SIDE_SUPPORT_MOVE = 356518804; 1547 /** 1548 * Headrest height position 1549 * The property is protected by the signature permission: 1550 * android.car.permission.CONTROL_CAR_SEATS. 1551 */ 1552 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1553 @AddedInOrBefore(majorVersion = 33) 1554 public static final int SEAT_HEADREST_HEIGHT_POS = 289409941; 1555 /** 1556 * Headrest height move 1557 * The property is protected by the signature permission: 1558 * android.car.permission.CONTROL_CAR_SEATS. 1559 */ 1560 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1561 @AddedInOrBefore(majorVersion = 33) 1562 public static final int SEAT_HEADREST_HEIGHT_MOVE = 356518806; 1563 /** 1564 * Headrest angle position 1565 * The property is protected by the signature permission: 1566 * android.car.permission.CONTROL_CAR_SEATS. 1567 */ 1568 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1569 @AddedInOrBefore(majorVersion = 33) 1570 public static final int SEAT_HEADREST_ANGLE_POS = 356518807; 1571 /** 1572 * Headrest angle move 1573 * The property is protected by the signature permission: 1574 * android.car.permission.CONTROL_CAR_SEATS. 1575 */ 1576 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1577 @AddedInOrBefore(majorVersion = 33) 1578 public static final int SEAT_HEADREST_ANGLE_MOVE = 356518808; 1579 /** 1580 * Headrest fore/aft position 1581 * The property is protected by the signature permission: 1582 * android.car.permission.CONTROL_CAR_SEATS. 1583 */ 1584 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1585 @AddedInOrBefore(majorVersion = 33) 1586 public static final int SEAT_HEADREST_FORE_AFT_POS = 356518809; 1587 /** 1588 * Headrest fore/aft move 1589 * The property is protected by the signature permission: 1590 * android.car.permission.CONTROL_CAR_SEATS. 1591 */ 1592 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1593 @AddedInOrBefore(majorVersion = 33) 1594 public static final int SEAT_HEADREST_FORE_AFT_MOVE = 356518810; 1595 /** 1596 * Seat Occupancy 1597 * The property is protected by the signature permission: 1598 * android.car.permission.CONTROL_CAR_SEATS. 1599 */ 1600 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 1601 @AddedInOrBefore(majorVersion = 33) 1602 public static final int SEAT_OCCUPANCY = 356518832; 1603 /** 1604 * Window Position 1605 * The property is protected by the signature permission: 1606 * android.car.permission.CONTROL_CAR_WINDOWS 1607 */ 1608 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_WINDOWS) 1609 @AddedInOrBefore(majorVersion = 33) 1610 public static final int WINDOW_POS = 322964416; 1611 /** 1612 * Window Move 1613 * The property is protected by the signature permission: 1614 * android.car.permission.CONTROL_CAR_WINDOWS 1615 */ 1616 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_WINDOWS) 1617 @AddedInOrBefore(majorVersion = 33) 1618 public static final int WINDOW_MOVE = 322964417; 1619 /** 1620 * Window Lock 1621 * The property is protected by the signature permission: 1622 * android.car.permission.CONTROL_CAR_WINDOWS 1623 */ 1624 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_WINDOWS) 1625 @AddedInOrBefore(majorVersion = 33) 1626 public static final int WINDOW_LOCK = 320867268; 1627 /** 1628 * Vehicle Maps Service (VMS) message 1629 * The property is protected by the signature permissions: 1630 * android.car.permission.VMS_PUBLISHER and android.car.permission.VMS_SUBSCRIBER. 1631 */ 1632 @RequiresPermission(anyOf = {Car.PERMISSION_VMS_PUBLISHER, Car.PERMISSION_VMS_SUBSCRIBER}) 1633 @AddedInOrBefore(majorVersion = 33) 1634 public static final int VEHICLE_MAP_SERVICE = 299895808; 1635 /** 1636 * OBD2 Live Sensor Data 1637 * 1638 * Reports a snapshot of the current (live) values of the OBD2 sensors available. 1639 * The property is protected by the signature permission: 1640 * android.car.permission.CAR_DIAGNOSTICS. 1641 */ 1642 @RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_READ_ALL) 1643 @AddedInOrBefore(majorVersion = 33) 1644 public static final int OBD2_LIVE_FRAME = 299896064; 1645 /** 1646 * OBD2 Freeze Frame Sensor Data 1647 * 1648 * Reports a snapshot of the value of the OBD2 sensors available at the time that a fault 1649 * occurred and was detected. 1650 * The property is protected by the signature permission: 1651 * android.car.permission.CAR_DIAGNOSTICS. 1652 */ 1653 @RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_READ_ALL) 1654 @AddedInOrBefore(majorVersion = 33) 1655 public static final int OBD2_FREEZE_FRAME = 299896065; 1656 /** 1657 * OBD2 Freeze Frame Information 1658 * The property is protected by the signature permission: 1659 * android.car.permission.CAR_DIAGNOSTICS. 1660 */ 1661 @RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_READ_ALL) 1662 @AddedInOrBefore(majorVersion = 33) 1663 public static final int OBD2_FREEZE_FRAME_INFO = 299896066; 1664 /** 1665 * OBD2 Freeze Frame Clear 1666 * 1667 * This property allows deletion of any of the freeze frames stored in 1668 * vehicle memory, as described by OBD2_FREEZE_FRAME_INFO. 1669 * The property is protected by the signature permission: 1670 * android.car.permission.CLEAR_CAR_DIAGNOSTICS. 1671 */ 1672 @RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_CLEAR) 1673 @AddedInOrBefore(majorVersion = 33) 1674 public static final int OBD2_FREEZE_FRAME_CLEAR = 299896067; 1675 /** 1676 * Headlights State 1677 * The property is protected by the signature permission: 1678 * android.car.permission.CAR_EXTERIOR_LIGHTS. 1679 */ 1680 @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS) 1681 @AddedInOrBefore(majorVersion = 33) 1682 public static final int HEADLIGHTS_STATE = 289410560; 1683 /** 1684 * High beam lights state 1685 * The property is protected by the signature permission: 1686 * android.car.permission.CAR_EXTERIOR_LIGHTS. 1687 */ 1688 @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS) 1689 @AddedInOrBefore(majorVersion = 33) 1690 public static final int HIGH_BEAM_LIGHTS_STATE = 289410561; 1691 /** 1692 * Fog light state 1693 * 1694 * If the car has both front and rear fog lights: 1695 * If front and rear fog lights can only be controlled together: FOG_LIGHTS_STATE provides 1696 * the state of fog lights. 1697 * 1698 * If front and rear fog lights can only be controlled independently: FRONT_FOG_LIGHTS_STATE 1699 * and REAR_FOG_LIGHTS_STATE provide the state of front, rear fog lights respectively. 1700 * 1701 * If the car has only front fog lights: 1702 * Only one of FOG_LIGHTS_STATE or FRONT_FOG_LIGHTS_STATE will be implemented in the car. The 1703 * implemented property provides the state of the front fog lights. 1704 * 1705 * If the car has only rear fog lights: 1706 * Only one of FOG_LIGHTS_STATE or REAR_FOG_LIGHTS_STATE will be implemented in the car. The 1707 * implemented property provides the state of the rear fog lights. 1708 * 1709 * The property is protected by the privileged|signature permission: 1710 * android.car.permission.CAR_EXTERIOR_LIGHTS. 1711 */ 1712 @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS) 1713 @AddedInOrBefore(majorVersion = 33) 1714 public static final int FOG_LIGHTS_STATE = 289410562; 1715 /** 1716 * Hazard light status 1717 * The property is protected by the signature permission: 1718 * android.car.permission.CAR_EXTERIOR_LIGHTS. 1719 */ 1720 @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS) 1721 @AddedInOrBefore(majorVersion = 33) 1722 public static final int HAZARD_LIGHTS_STATE = 289410563; 1723 /** 1724 * Headlight switch 1725 * The property is protected by the signature permission: 1726 * android.car.permission.CAR_EXTERIOR_LIGHTS. 1727 */ 1728 @RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS) 1729 @AddedInOrBefore(majorVersion = 33) 1730 public static final int HEADLIGHTS_SWITCH = 289410576; 1731 /** 1732 * High beam light switch 1733 * The property is protected by the signature permission: 1734 * android.car.permission.CAR_EXTERIOR_LIGHTS. 1735 */ 1736 @RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS) 1737 @AddedInOrBefore(majorVersion = 33) 1738 public static final int HIGH_BEAM_LIGHTS_SWITCH = 289410577; 1739 /** 1740 * Fog light switch 1741 * 1742 * If the car has both front and rear fog lights: 1743 * If front and rear fog lights can only be controlled together: FOG_LIGHTS_SWITCH should be 1744 * used to change the fog lights state. 1745 * 1746 * If front and rear fog lights can only be controlled independently: FRONT_FOG_LIGHTS_SWITCH 1747 * and REAR_FOG_LIGHTS_SWITCH should be used to change the front, rear fog lights state 1748 * respectively. 1749 * 1750 * If the car has only front fog lights: 1751 * Only one of FOG_LIGHTS_SWITCH or FRONT_FOG_LIGHTS_SWITCH will be implemented in the car. The 1752 * implemented property should be used to change the front fog lights state. 1753 * 1754 * If the car has only rear fog lights: 1755 * Only one of FOG_LIGHTS_SWITCH or REAR_FOG_LIGHTS_SWITCH will be implemented in the car. The 1756 * implemented property should be used to change the rear fog lights state. 1757 * 1758 * The property is protected by the privileged|signature permission: 1759 * android.car.permission.CONTROL_CAR_EXTERIOR_LIGHTS. 1760 */ 1761 @RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS) 1762 @AddedInOrBefore(majorVersion = 33) 1763 public static final int FOG_LIGHTS_SWITCH = 289410578; 1764 /** 1765 * Hazard light switch 1766 * The property is protected by the signature permission: 1767 * android.car.permission.CAR_EXTERIOR_LIGHTS. 1768 */ 1769 @RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS) 1770 @AddedInOrBefore(majorVersion = 33) 1771 public static final int HAZARD_LIGHTS_SWITCH = 289410579; 1772 /** 1773 * Cabin lights 1774 * Requires permission: {@link Car#PERMISSION_READ_INTERIOR_LIGHTS}. 1775 */ 1776 @RequiresPermission(Car.PERMISSION_READ_INTERIOR_LIGHTS) 1777 @AddedInOrBefore(majorVersion = 33) 1778 public static final int CABIN_LIGHTS_STATE = 289410817; 1779 /** 1780 * Cabin lights switch 1781 * Requires permission: {@link Car#PERMISSION_CONTROL_INTERIOR_LIGHTS}. 1782 */ 1783 @RequiresPermission(Car.PERMISSION_CONTROL_INTERIOR_LIGHTS) 1784 @AddedInOrBefore(majorVersion = 33) 1785 public static final int CABIN_LIGHTS_SWITCH = 289410818; 1786 /** 1787 * Reading lights 1788 * Requires permission: {@link Car#PERMISSION_READ_INTERIOR_LIGHTS}. 1789 */ 1790 @RequiresPermission(Car.PERMISSION_READ_INTERIOR_LIGHTS) 1791 @AddedInOrBefore(majorVersion = 33) 1792 public static final int READING_LIGHTS_STATE = 356519683; 1793 /** 1794 * Reading lights switch 1795 * Requires permission: {@link Car#PERMISSION_CONTROL_INTERIOR_LIGHTS}. 1796 */ 1797 @RequiresPermission(Car.PERMISSION_CONTROL_INTERIOR_LIGHTS) 1798 @AddedInOrBefore(majorVersion = 33) 1799 public static final int READING_LIGHTS_SWITCH = 356519684; 1800 1801 /** 1802 * Property to get the initial settings for multi-user management (such as initial user). 1803 * 1804 * <p>Doesn't require permission because it's not exposed through 1805 * {@link android.car.hardware.property.CarPropertyManager}. 1806 * 1807 * @hide 1808 */ 1809 @AddedInOrBefore(majorVersion = 33) 1810 public static final int INITIAL_USER_INFO = 299896583; 1811 1812 /** 1813 * Property to switch user for multi-user management. 1814 * 1815 * <p>Doesn't require permission because it's not exposed through 1816 * {@link android.car.hardware.property.CarPropertyManager}. 1817 * 1818 * @hide 1819 */ 1820 @AddedInOrBefore(majorVersion = 33) 1821 public static final int SWITCH_USER = 299896584; 1822 1823 /** 1824 * Property to create a new user for multi-user management. 1825 * 1826 * <p>Doesn't require permission because it's not exposed through 1827 * {@link android.car.hardware.property.CarPropertyManager}. 1828 * 1829 * @hide 1830 */ 1831 @AddedInOrBefore(majorVersion = 33) 1832 public static final int CREATE_USER = 299896585; 1833 1834 /** 1835 * Property to remove a new user for multi-user management. 1836 * 1837 * <p>Doesn't require permission because it's not exposed through 1838 * {@link android.car.hardware.property.CarPropertyManager}. 1839 * 1840 * @hide 1841 */ 1842 @AddedInOrBefore(majorVersion = 33) 1843 public static final int REMOVE_USER = 299896586; 1844 1845 /** 1846 * Property to get / set the user authentication types associated with an Android user. 1847 * 1848 * <p>Doesn't require permission because it's not exposed through 1849 * {@link android.car.hardware.property.CarPropertyManager}. 1850 * 1851 * @hide 1852 */ 1853 @AddedInOrBefore(majorVersion = 33) 1854 public static final int USER_IDENTIFICATION_ASSOCIATION = 299896587; 1855 1856 /** 1857 * Property for VHAL to apply power policy. 1858 * 1859 * <p>Doesn't require permission because it's not exposed through 1860 * {@link android.car.hardware.property.CarPropertyManager}. 1861 * 1862 * @hide 1863 */ 1864 @AddedInOrBefore(majorVersion = 33) 1865 public static final int POWER_POLICY_REQ = 286265121; 1866 1867 /** 1868 * Property for VHAL to set the default power policies per power status transition. 1869 * 1870 * <p>Doesn't require permission because it's not exposed through 1871 * {@link android.car.hardware.property.CarPropertyManager}. 1872 * 1873 * @hide 1874 */ 1875 @AddedInOrBefore(majorVersion = 33) 1876 public static final int POWER_POLICY_GROUP_REQ = 286265122; 1877 1878 /** 1879 * Property to report a new current power policy to VHAL. 1880 * 1881 * <p>Doesn't require permission because it's not exposed through 1882 * {@link android.car.hardware.property.CarPropertyManager}. 1883 * 1884 * @hide 1885 */ 1886 @AddedInOrBefore(majorVersion = 33) 1887 public static final int CURRENT_POWER_POLICY = 286265123; 1888 1889 /** 1890 * Property to report that car watchdog is alive. 1891 * 1892 * <p>Doesn't require permission because it's not exposed through 1893 * {@link android.car.hardware.property.CarPropertyManager}. 1894 * 1895 * @hide 1896 */ 1897 @AddedInOrBefore(majorVersion = 33) 1898 public static final int WATCHDOG_ALIVE = 290459441; 1899 1900 /** 1901 * Property to report a process terminated by car watchdog. 1902 * 1903 * <p>Doesn't require permission because it's not exposed through 1904 * {@link android.car.hardware.property.CarPropertyManager}. 1905 * 1906 * @hide 1907 */ 1908 @AddedInOrBefore(majorVersion = 33) 1909 public static final int WATCHDOG_TERMINATED_PROCESS = 299896626; 1910 1911 /** 1912 * Property to signal a heartbeat from VHAL. 1913 * 1914 * <p>Doesn't require permission because it's not exposed through 1915 * {@link android.car.hardware.property.CarPropertyManager}. 1916 * 1917 * @hide 1918 */ 1919 @AddedInOrBefore(majorVersion = 33) 1920 public static final int VHAL_HEARTBEAT = 290459443; 1921 1922 /** 1923 * Property to start the ClusterUI in cluster display. 1924 * 1925 * <p>Doesn't require permission because it's not exposed through 1926 * {@link android.car.hardware.property.CarPropertyManager}. 1927 * 1928 * @hide 1929 */ 1930 @AddedInOrBefore(majorVersion = 33) 1931 public static final int CLUSTER_SWITCH_UI = 289410868; 1932 1933 /** 1934 * Property to change the state of the cluster display. 1935 * 1936 * <p>Doesn't require permission because it's not exposed through 1937 * {@link android.car.hardware.property.CarPropertyManager}. 1938 * 1939 * @hide 1940 */ 1941 @AddedInOrBefore(majorVersion = 33) 1942 public static final int CLUSTER_DISPLAY_STATE = 289476405; 1943 1944 /** 1945 * Property to reports the current display and ClusterUI statue. 1946 * 1947 * <p>Doesn't require permission because it's not exposed through 1948 * {@link android.car.hardware.property.CarPropertyManager}. 1949 * 1950 * @hide 1951 */ 1952 @AddedInOrBefore(majorVersion = 33) 1953 public static final int CLUSTER_REPORT_STATE = 299896630; 1954 1955 /** 1956 * Property to request to change the cluster display state to show some ClusterUI. 1957 * 1958 * <p>Doesn't require permission because it's not exposed through 1959 * {@link android.car.hardware.property.CarPropertyManager}. 1960 * 1961 * @hide 1962 */ 1963 @AddedInOrBefore(majorVersion = 33) 1964 public static final int CLUSTER_REQUEST_DISPLAY = 289410871; 1965 1966 /** 1967 * Property to inform the current navigation state. 1968 * 1969 * <p>Doesn't require permission because it's not exposed through 1970 * {@link android.car.hardware.property.CarPropertyManager}. 1971 * 1972 * @hide 1973 */ 1974 @AddedInOrBefore(majorVersion = 33) 1975 public static final int CLUSTER_NAVIGATION_STATE = 292556600; 1976 1977 /** 1978 * Current date and time, encoded as Unix time. 1979 * 1980 * <p>This value denotes the number of milliseconds that have elapsed since 1/1/1970 UTC. 1981 */ 1982 @RequiresPermission(Car.PERMISSION_CAR_EPOCH_TIME) 1983 @AddedInOrBefore(majorVersion = 33) 1984 public static final int EPOCH_TIME = 290457094; 1985 1986 /** 1987 * External encryption binding seed. 1988 * 1989 * <p>This value is mixed with the local storage encryption seed. This property holds 16 bytes, 1990 * and is expected to be persisted on an ECU separate from the IVI. The property is initially 1991 * set by AAOS, who generates it using a CSRNG. AAOS will then read the property on subsequent 1992 * boots. 1993 */ 1994 @RequiresPermission(Car.PERMISSION_STORAGE_ENCRYPTION_BINDING_SEED) 1995 @AddedInOrBefore(majorVersion = 33) 1996 public static final int STORAGE_ENCRYPTION_BINDING_SEED = 292554247; 1997 1998 /** 1999 * Electronic Toll Collection card type. 2000 * 2001 * <p>This property indicates the type of ETC(Electronic Toll Collection) card in the vehicle. 2002 * If the head unit is aware of an ETC card attached to the vehicle, this property should 2003 * return the type of card attached; otherwise, this property should be UNAVAILABLE. The 2004 * property value should be one of {@link VehicleElectronicTollCollectionCardType}. 2005 * 2006 * <ul> 2007 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2008 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 2009 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2010 * <li>{@code Integer} property type 2011 * </ul> 2012 * 2013 * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}. 2014 */ 2015 @RequiresPermission(Car.PERMISSION_CAR_INFO) 2016 @AddedInOrBefore(majorVersion = 33) 2017 public static final int ELECTRONIC_TOLL_COLLECTION_CARD_TYPE = 289410873; 2018 2019 /** 2020 * Electronic Toll Collection card status. 2021 * 2022 * <p>This property indicates the status of ETC(Electronic Toll Collection) card in the 2023 * vehicle. If the head unit is aware of an ETC card attached to the vehicle, ETC_CARD_STATUS 2024 * gives that status of the card; otherwise, this property should be UNAVAILABLE. The property 2025 * value should be one of {@link VehicleElectronicTollCollectionCardStatus}. 2026 * 2027 * <ul> 2028 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2029 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 2030 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2031 * <li>{@code Integer} property type 2032 * </ul> 2033 * 2034 * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}. 2035 */ 2036 @RequiresPermission(Car.PERMISSION_CAR_INFO) 2037 @AddedInOrBefore(majorVersion = 33) 2038 public static final int ELECTRONIC_TOLL_COLLECTION_CARD_STATUS = 289410874; 2039 2040 /** 2041 * Front fog lights state 2042 * 2043 * Please refer to the documentation on FOG_LIGHTS_STATE for more information. 2044 * 2045 * The property is protected by the privileged|signature permission: 2046 * android.car.permission.CAR_EXTERIOR_LIGHTS. 2047 */ 2048 @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS) 2049 @AddedInOrBefore(majorVersion = 33) 2050 public static final int FRONT_FOG_LIGHTS_STATE = 289410875; 2051 2052 /** 2053 * Front fog lights switch 2054 * 2055 * Please refer to the documentation on FOG_LIGHTS_SWITCH for more information. 2056 * 2057 * The property is protected by the privileged|signature permission: 2058 * android.car.permission.CONTROL_CAR_EXTERIOR_LIGHTS. 2059 */ 2060 @RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS) 2061 @AddedInOrBefore(majorVersion = 33) 2062 public static final int FRONT_FOG_LIGHTS_SWITCH = 289410876; 2063 2064 /** 2065 * Rear fog lights state 2066 * 2067 * Please refer to the documentation on FOG_LIGHTS_STATE for more information. 2068 * 2069 * The property is protected by the privileged|signature permission: 2070 * android.car.permission.CAR_EXTERIOR_LIGHTS. 2071 */ 2072 @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS) 2073 @AddedInOrBefore(majorVersion = 33) 2074 public static final int REAR_FOG_LIGHTS_STATE = 289410877; 2075 2076 /** 2077 * Rear fog lights switch 2078 * 2079 * Please refer to the documentation on FOG_LIGHTS_SWITCH for more information. 2080 * 2081 * The property is protected by the privileged|signature permission: 2082 * android.car.permission.CONTROL_CAR_EXTERIOR_LIGHTS. 2083 */ 2084 @RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS) 2085 @AddedInOrBefore(majorVersion = 33) 2086 public static final int REAR_FOG_LIGHTS_SWITCH = 289410878; 2087 2088 /** 2089 * EV charge current draw limit. 2090 * 2091 * <p>Indicates the maximum current draw threshold for charging set by the user. configArray[0] 2092 * contains the max current draw allowed by the vehicle in Amperes. 2093 * 2094 * <p>Property Config: 2095 * <ul> 2096 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} 2097 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 2098 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2099 * <li>{@code Boolean} property type 2100 * </ul> 2101 * 2102 * <p>Required Permissions: 2103 * <ul> 2104 * <li>Dangerous permission {@link Car#PERMISSION_ENERGY} to read property. 2105 * <li>Privileged|Signature permission {@link Car#PERMISSION_CONTROL_CAR_ENERGY} to write 2106 * property. 2107 * </ul> 2108 */ 2109 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY)) 2110 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_CAR_ENERGY)) 2111 @AddedInOrBefore(majorVersion = 33) 2112 public static final int EV_CHARGE_CURRENT_DRAW_LIMIT = 291508031; 2113 2114 /** 2115 * EV charge percent limit. 2116 * 2117 * <p>Indicates the maximum charge percent threshold set by the user. Returns a float value 2118 * from 0 to 100. 2119 * 2120 * <p>configArray is optional. If it is populated, it represents the valid charge percent limit 2121 * values for the vehicle. Here is an example configArray: 2122 * <ul> 2123 * <li>configArray[0] = 20 2124 * <li>configArray[1] = 40 2125 * <li>configArray[2] = 60 2126 * <li>configArray[3] = 80 2127 * </ul> 2128 * 2129 * <p>Property Config: 2130 * <ul> 2131 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} 2132 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 2133 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2134 * <li>{@code Float} property type 2135 * </ul> 2136 * 2137 * <p>Required Permissions: 2138 * <ul> 2139 * <li>Dangerous permission {@link Car#PERMISSION_ENERGY} to read property. 2140 * <li>Privileged|Signature permission {@link Car#PERMISSION_CONTROL_CAR_ENERGY} to write 2141 * property. 2142 * </ul> 2143 */ 2144 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY)) 2145 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_CAR_ENERGY)) 2146 @AddedInOrBefore(majorVersion = 33) 2147 public static final int EV_CHARGE_PERCENT_LIMIT = 291508032; 2148 2149 /** 2150 * Charging state of the car. 2151 * 2152 * <p>Returns the current charging state of the car. 2153 * 2154 * <p>Required Permissions: 2155 * <ul> 2156 * <li>Dangerous permission {@link Car#PERMISSION_ENERGY} to read property. 2157 * </ul> 2158 */ 2159 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY)) 2160 @AddedInOrBefore(majorVersion = 33) 2161 public static final int EV_CHARGE_STATE = 289410881; 2162 2163 /** 2164 * Start or stop charging the EV battery. 2165 * 2166 * <p>The setting that the user wants. Setting this property to true starts the battery charging 2167 * and setting to false stops charging. 2168 * 2169 * <p>Required Permissions: 2170 * <ul> 2171 * <li>Privileged|Signature permission {@link Car#PERMISSION_CONTROL_CAR_ENERGY} to read/write 2172 * property. 2173 */ 2174 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_ENERGY) 2175 @AddedInOrBefore(majorVersion = 33) 2176 public static final int EV_CHARGE_SWITCH = 287313730; 2177 2178 /** 2179 * Estimated charge time remaining in seconds. 2180 * 2181 * <p>Returns 0 if the vehicle is not charging. 2182 * 2183 * <p>Property Config: 2184 * <ul> 2185 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2186 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 2187 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 2188 * <li>{@code Integer} property type 2189 * </ul> 2190 * 2191 * <p>Required Permissions: 2192 * <ul> 2193 * <li>Dangerous permission {@link Car#PERMISSION_ENERGY} to read property. 2194 * <li>Property is not writable. 2195 * </ul> 2196 */ 2197 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY)) 2198 @AddedInOrBefore(majorVersion = 33) 2199 public static final int EV_CHARGE_TIME_REMAINING = 289410883; 2200 2201 /** 2202 * Regenerative braking or one-pedal drive state of the car. 2203 * 2204 * <p>Returns the current state associated with the regenerative braking 2205 * setting in the car. 2206 * 2207 * <p>Required Permissions: 2208 * <ul> 2209 * <li>Dangerous permission {@link Car#PERMISSION_ENERGY} to read property. 2210 * </ul> 2211 */ 2212 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY)) 2213 @AddedInOrBefore(majorVersion = 33) 2214 public static final int EV_REGENERATIVE_BRAKING_STATE = 289410884; 2215 2216 /** 2217 * Vehicle’s curb weight 2218 * 2219 * <p>Returns the vehicle's curb weight in kilograms. configArray[0] specifies the vehicle’s 2220 * gross weight in kilograms. 2221 * 2222 * <p>Required Permissions: 2223 * <ul> 2224 * <li>Privileged|Signature permission {@link Car#PERMISSION_PRIVILEGED_CAR_INFO} to read 2225 * property. 2226 * </ul> 2227 */ 2228 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_PRIVILEGED_CAR_INFO)) 2229 @AddedInOrBefore(majorVersion = 33) 2230 public static final int VEHICLE_CURB_WEIGHT = 289410886; 2231 2232 /** 2233 * Indicates if there is a trailer present or not. 2234 * 2235 * <p>Returns the trailer state of the car. 2236 * 2237 * <p>Required Permissions: 2238 * <ul> 2239 * <li>Privileged|Signature permission {@link Car#PERMISSION_PRIVILEGED_CAR_INFO} to read 2240 * property. 2241 * </ul> 2242 */ 2243 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_PRIVILEGED_CAR_INFO)) 2244 @AddedInOrBefore(majorVersion = 33) 2245 public static final int TRAILER_PRESENT = 289410885; 2246 2247 /** 2248 * EU's General security regulation compliance requirement. 2249 * 2250 * <p>Returns whether general security regulation compliance is required, if 2251 * so, what type of requirement. See {@link GsrComplianceType} for possible enums. 2252 * 2253 * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}. 2254 */ 2255 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_CAR_INFO)) 2256 @ApiRequirements(minCarVersion = ApiRequirements.CarVersion.TIRAMISU_1, 2257 minPlatformVersion = ApiRequirements.PlatformVersion.TIRAMISU_0) 2258 public static final int GENERAL_SAFETY_REGULATION_COMPLIANCE = 289410887; 2259 2260 /* 2261 * Used to cache the mapping of property Id integer values into property name strings. This 2262 * will be initialized during the first call to {@link VehiclePropertyIds#toString(int)}. 2263 */ 2264 private static final AtomicReference<SparseArray<String>> sPropertyIdToPropertyNameHolder = 2265 new AtomicReference<>(); 2266 2267 /** 2268 * @deprecated to prevent others from instantiating this class 2269 */ 2270 @Deprecated 2271 @ExcludeFromCodeCoverageGeneratedReport(reason = BOILERPLATE_CODE) VehiclePropertyIds()2272 public VehiclePropertyIds() { 2273 } 2274 2275 /** 2276 * Gets a user-friendly representation of a property. 2277 */ 2278 @AddedInOrBefore(majorVersion = 33) toString(int property)2279 public static String toString(int property) { 2280 SparseArray<String> propertyIdsToNameMapping = sPropertyIdToPropertyNameHolder.get(); 2281 if (propertyIdsToNameMapping == null) { 2282 propertyIdsToNameMapping = getPropertyIdsToNameMapping(); 2283 sPropertyIdToPropertyNameHolder.compareAndSet(null, propertyIdsToNameMapping); 2284 } 2285 2286 String name = propertyIdsToNameMapping.get(property); 2287 return name != null ? name : "0x" + Integer.toHexString(property); 2288 } 2289 2290 /** 2291 * Creates a SparseArray mapping property Ids to their String representations 2292 * directly from this class. 2293 */ 2294 getPropertyIdsToNameMapping()2295 private static SparseArray<String> getPropertyIdsToNameMapping() { 2296 Field[] classFields = VehiclePropertyIds.class.getDeclaredFields(); 2297 SparseArray<String> propertyIdsToNameMapping = new SparseArray<>(classFields.length); 2298 for (int i = 0; i < classFields.length; i++) { 2299 Field candidateField = classFields[i]; 2300 try { 2301 if (isPropertyId(candidateField)) { 2302 propertyIdsToNameMapping 2303 .put(candidateField.getInt(null), candidateField.getName()); 2304 } 2305 } catch (IllegalAccessException e) { 2306 Log.wtf(TAG, "Failed trying to find value for " + candidateField.getName(), e); 2307 } 2308 } 2309 return propertyIdsToNameMapping; 2310 } 2311 isPropertyId(Field field)2312 private static boolean isPropertyId(Field field) { 2313 // We only want public static final int values 2314 return field.getType() == int.class 2315 && field.getModifiers() == (Modifier.STATIC | Modifier.FINAL | Modifier.PUBLIC); 2316 } 2317 } 2318