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 android.car.feature.Flags.FLAG_ANDROID_VIC_VEHICLE_PROPERTIES; 20 import static android.Manifest.permission.ACCESS_FINE_LOCATION; 21 22 import static com.android.car.internal.ExcludeFromCodeCoverageGeneratedReport.BOILERPLATE_CODE; 23 import static com.android.car.internal.property.VehiclePropertyIdDebugUtils.isDefined; 24 import static com.android.car.internal.property.VehiclePropertyIdDebugUtils.toName; 25 26 import android.annotation.FlaggedApi; 27 import android.annotation.RequiresPermission; 28 import android.annotation.SystemApi; 29 import android.car.hardware.CarHvacFanDirection; 30 import android.car.hardware.CarPropertyValue; 31 import android.car.hardware.property.AutomaticEmergencyBrakingState; 32 import android.car.hardware.property.BlindSpotWarningState; 33 import android.car.hardware.property.CruiseControlCommand; 34 import android.car.hardware.property.CruiseControlState; 35 import android.car.hardware.property.CruiseControlType; 36 import android.car.hardware.property.DriverDistractionState; 37 import android.car.hardware.property.DriverDistractionWarning; 38 import android.car.hardware.property.DriverDrowsinessAttentionState; 39 import android.car.hardware.property.DriverDrowsinessAttentionWarning; 40 import android.car.hardware.property.EmergencyLaneKeepAssistState; 41 import android.car.hardware.property.ErrorState; 42 import android.car.hardware.property.EvChargeState; 43 import android.car.hardware.property.EvChargingConnectorType; 44 import android.car.hardware.property.EvRegenerativeBrakingState; 45 import android.car.hardware.property.EvStoppingMode; 46 import android.car.hardware.property.ForwardCollisionWarningState; 47 import android.car.hardware.property.HandsOnDetectionDriverState; 48 import android.car.hardware.property.HandsOnDetectionWarning; 49 import android.car.hardware.property.LaneCenteringAssistCommand; 50 import android.car.hardware.property.LaneCenteringAssistState; 51 import android.car.hardware.property.LaneDepartureWarningState; 52 import android.car.hardware.property.LaneKeepAssistState; 53 import android.car.hardware.property.LocationCharacterization; 54 import android.car.hardware.property.TrailerState; 55 import android.car.hardware.property.VehicleElectronicTollCollectionCardStatus; 56 import android.car.hardware.property.VehicleElectronicTollCollectionCardType; 57 import android.car.hardware.property.VehicleLightState; 58 import android.car.hardware.property.VehicleLightSwitch; 59 import android.car.hardware.property.VehicleOilLevel; 60 import android.car.hardware.property.VehicleTurnSignal; 61 import android.car.hardware.property.WindshieldWipersState; 62 import android.car.hardware.property.WindshieldWipersSwitch; 63 64 import com.android.car.internal.ExcludeFromCodeCoverageGeneratedReport; 65 66 /** 67 * List of vehicle property IDs. 68 * 69 * <p> Property IDs are used with the {@link android.car.hardware.property.CarPropertyManager} APIs 70 * (e.g. {@link android.car.hardware.property.CarPropertyManager#getProperty(int, int)} or {@link 71 * android.car.hardware.property.CarPropertyManager#setProperty(Class, int, int, Object)}). 72 */ 73 public final class VehiclePropertyIds { 74 75 /** 76 * Undefined property. 77 * 78 * <p>This property should never be used/will never be supported. 79 */ 80 public static final int INVALID = 0; 81 /** 82 * VIN of vehicle 83 * 84 * <p>Property Config: 85 * <ul> 86 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 87 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 88 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 89 * <li>{@code String} property type 90 * </ul> 91 * 92 * <p>Required Permission: 93 * <ul> 94 * <li>Signature|Privileged permission "android.car.permission.CAR_IDENTIFICATION" to read 95 * property. 96 * <li>Property is not writable. 97 * </ul> 98 */ 99 @RequiresPermission(Car.PERMISSION_IDENTIFICATION) 100 public static final int INFO_VIN = 286261504; 101 /** 102 * Manufacturer of vehicle. 103 * 104 * <p>This property communicates the vehicle's public brand name. 105 * 106 * <p>Property Config: 107 * <ul> 108 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 109 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 110 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 111 * <li>{@code String} property type 112 * </ul> 113 * 114 * <p>Required Permission: 115 * <ul> 116 * <li>Normal permission {@link Car#PERMISSION_CAR_INFO} to read property. 117 * <li>Property is not writable. 118 * </ul> 119 */ 120 @RequiresPermission(Car.PERMISSION_CAR_INFO) 121 public static final int INFO_MAKE = 286261505; 122 /** 123 * Model of vehicle. 124 * 125 * <p>This property communicates the vehicle's public model name. 126 * 127 * <p>Property Config: 128 * <ul> 129 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 130 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 131 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 132 * <li>{@code String} property type 133 * </ul> 134 * 135 * <p>Required Permission: 136 * <ul> 137 * <li>Normal permission {@link Car#PERMISSION_CAR_INFO} to read property. 138 * <li>Property is not writable. 139 * </ul> 140 */ 141 @RequiresPermission(Car.PERMISSION_CAR_INFO) 142 public static final int INFO_MODEL = 286261506; 143 /** 144 * Model year of vehicle in YYYY format based on Gregorian calendar. 145 * 146 * <p>Property Config: 147 * <ul> 148 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 149 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 150 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 151 * <li>{@code Integer} property type 152 * </ul> 153 * 154 * <p>Required Permission: 155 * <ul> 156 * <li>Normal permission {@link Car#PERMISSION_CAR_INFO} to read property. 157 * <li>Property is not writable. 158 * </ul> 159 */ 160 @RequiresPermission(Car.PERMISSION_CAR_INFO) 161 public static final int INFO_MODEL_YEAR = 289407235; 162 /** 163 * Fuel capacity of the vehicle in milliliters. 164 * 165 * <p>This property communicates the maximum amount of the fuel that can be stored in the 166 * vehicle in milliliters. This property will not be implemented for electric vehicles. That is, 167 * if {@link #INFO_FUEL_TYPE} only contains {@link FuelType#ELECTRIC}, this property will not be 168 * implemented. For EVs, see {@link #INFO_EV_BATTERY_CAPACITY}. 169 * 170 * <p>Property Config: 171 * <ul> 172 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 173 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 174 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 175 * <li>{@code Float} property type 176 * </ul> 177 * 178 * <p>Required Permission: 179 * <ul> 180 * <li>Normal permission {@link Car#PERMISSION_CAR_INFO} to read property. 181 * <li>Property is not writable. 182 * </ul> 183 */ 184 @RequiresPermission(Car.PERMISSION_CAR_INFO) 185 public static final int INFO_FUEL_CAPACITY = 291504388; 186 /** 187 * List the {@link FuelType}s the vehicle may use. 188 * 189 * <p>{@link FuelType#ELECTRIC} will only be included if the vehicle is plug in rechargeable. 190 * Note that for this reason, even though {@link FuelType#ELECTRIC} is not listed as a fuel 191 * type, other EV properties such as {@link #INFO_EV_BATTERY_CAPACITY} can still be supported on 192 * the vehicle. 193 * 194 * <p>For example: 195 * <ul> 196 * <li>FHEVs (Fully Hybrid Electric Vehicles) will not include {@link FuelType#ELECTRIC} in its 197 * {@code Integer[]} value. So {@code INFO_FUEL_TYPE} will be populated as such: 198 * { {@link FuelType#UNLEADED} }. 199 * <li>On the other hand, PHEVs (Plug-in Hybrid Electric Vehicles) are plug in rechargeable, 200 * and hence will include {@link FuelType#ELECTRIC} in {@code INFO_FUEL_TYPE}'s {@code 201 * Integer[]} value. So {@code INFO_FUEL_TYPE} will be populated as such: 202 * { {@link FuelType#UNLEADED}, {@link FuelType#ELECTRIC} }. 203 * </ul> 204 * 205 * <p>Property Config: 206 * <ul> 207 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 208 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 209 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 210 * <li>{@code Integer[]} property type 211 * </ul> 212 * 213 * <p>Required Permission: 214 * <ul> 215 * <li>Normal permission {@link Car#PERMISSION_CAR_INFO} to read property. 216 * <li>Property is not writable. 217 * </ul> 218 * 219 * @data_enum {@link FuelType} 220 */ 221 @RequiresPermission(Car.PERMISSION_CAR_INFO) 222 public static final int INFO_FUEL_TYPE = 289472773; 223 /** 224 * Nominal usable battery capacity for EV or hybrid vehicle. 225 * 226 * <p>Returns the nominal battery capacity in {@link android.car.VehicleUnit#WATT_HOUR}, if EV 227 * or hybrid. This is the usable battery capacity when the vehicle is new. This value might be 228 * different from {@link #EV_CURRENT_BATTERY_CAPACITY} because {@link 229 * #EV_CURRENT_BATTERY_CAPACITY} returns the real-time usable battery capacity taking into 230 * account factors such as battery aging and temperature dependency. 231 * 232 * <p>Property Config: 233 * <ul> 234 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 235 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 236 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 237 * <li>{@code Float} property type 238 * </ul> 239 * 240 * <p>Required Permission: 241 * <ul> 242 * <li>Normal permission {@link Car#PERMISSION_CAR_INFO} to read property. 243 * <li>Property is not writable. 244 * </ul> 245 */ 246 @RequiresPermission(Car.PERMISSION_CAR_INFO) 247 public static final int INFO_EV_BATTERY_CAPACITY = 291504390; 248 /** 249 * List of {@link android.car.hardware.property.EvChargingConnectorType}s this vehicle may use. 250 * 251 * <p>If the vehicle has multiple charging ports, this property will return all possible 252 * connector types that can be used by at least one charging port on the vehicle. 253 * 254 * <p>Property Config: 255 * <ul> 256 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 257 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 258 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 259 * <li>{@code Integer[]} property type 260 * </ul> 261 * 262 * <p>Required Permission: 263 * <ul> 264 * <li>Normal permission {@link Car#PERMISSION_CAR_INFO} to read property. 265 * <li>Property is not writable. 266 * </ul> 267 * 268 * @data_enum {@link EvChargingConnectorType} 269 */ 270 @RequiresPermission(Car.PERMISSION_CAR_INFO) 271 public static final int INFO_EV_CONNECTOR_TYPE = 289472775; 272 /** 273 * {@link PortLocationType} for the fuel door location. 274 * 275 * <p>This property communicates the location of the fuel door on the vehicle. This property 276 * will not be implemented for electric vehicles. That is, if {@link #INFO_FUEL_TYPE} only 277 * contains {@link FuelType#ELECTRIC}, this property will not be implemented. For EVs, see 278 * {@link #INFO_EV_PORT_LOCATION} or {@link #INFO_MULTI_EV_PORT_LOCATIONS}. 279 * 280 * <p>Property Config: 281 * <ul> 282 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 283 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 284 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 285 * <li>{@code Integer} property type 286 * </ul> 287 * 288 * <p>Required Permission: 289 * <ul> 290 * <li>Normal permission {@link Car#PERMISSION_CAR_INFO} to read property. 291 * <li>Property is not writable. 292 * </ul> 293 * 294 * @data_enum {@link PortLocationType} 295 */ 296 @RequiresPermission(Car.PERMISSION_CAR_INFO) 297 public static final int INFO_FUEL_DOOR_LOCATION = 289407240; 298 /** 299 * {@link PortLocationType} for the EV port location. 300 * 301 * <p>This property communicates the location of the charging port on the EV. If there are 302 * multiple ports on the vehicle, this will communicate the port that enables the fastest 303 * charging on the vehicle. See {@link #INFO_MULTI_EV_PORT_LOCATIONS} to get information on all 304 * port locations. 305 * 306 * <p>Property Config: 307 * <ul> 308 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 309 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 310 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 311 * <li>{@code Integer} property type 312 * </ul> 313 * 314 * <p>Required Permission: 315 * <ul> 316 * <li>Normal permission {@link Car#PERMISSION_CAR_INFO} to read property. 317 * <li>Property is not writable. 318 * </ul> 319 * 320 * @data_enum {@link PortLocationType} 321 */ 322 @RequiresPermission(Car.PERMISSION_CAR_INFO) 323 public static final int INFO_EV_PORT_LOCATION = 289407241; 324 /** 325 * List {@link PortLocationType}s for Multiple EV port locations. 326 * 327 * <p>Property Config: 328 * <ul> 329 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 330 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 331 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 332 * <li>{@code Integer[]} property type 333 * </ul> 334 * 335 * <p>Required Permission: 336 * <ul> 337 * <li>Normal permission {@link Car#PERMISSION_CAR_INFO} to read property. 338 * <li>Property is not writable. 339 * </ul> 340 * 341 * @data_enum {@link PortLocationType} 342 */ 343 @RequiresPermission(Car.PERMISSION_CAR_INFO) 344 public static final int INFO_MULTI_EV_PORT_LOCATIONS = 289472780; 345 /** 346 * Driver's seat location. 347 * 348 * <p>The only area ID listed in {@link android.car.hardware.CarPropertyConfig#getAreaIds} for 349 * {@code INFO_DRIVER_SEAT} will be {@code 0}. 350 * 351 * <p>Property Config: 352 * <ul> 353 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 354 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 355 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 356 * <li>{@code Integer} property type 357 * </ul> 358 * 359 * <p>Required Permission: 360 * <ul> 361 * <li>Normal permission {@link Car#PERMISSION_CAR_INFO} to read property. 362 * <li>Property is not writable. 363 * </ul> 364 * 365 * @data_enum {@link VehicleAreaSeat} 366 */ 367 @RequiresPermission(Car.PERMISSION_CAR_INFO) 368 public static final int INFO_DRIVER_SEAT = 356516106; 369 /** 370 * Vehicle's exterior dimensions in millimeters. 371 * 372 * <p>Exterior dimensions defined in the {@link CarPropertyValue#getValue()} {@code Integer[]}: 373 * <ul> 374 * <li>Integer[0] = height 375 * <li>Integer[1] = length 376 * <li>Integer[2] = width 377 * <li>Integer[3] = width including mirrors 378 * <li>Integer[4] = wheel base 379 * <li>Integer[5] = track width front 380 * <li>Integer[6] = track width rear 381 * <li>Integer[7] = curb to curb turning diameter 382 * </ul> 383 * 384 * <p>Property Config: 385 * <ul> 386 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 387 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 388 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 389 * <li>{@code Integer[]} property type 390 * </ul> 391 * 392 * <p>Required Permission: 393 * <ul> 394 * <li>Normal permission {@link Car#PERMISSION_CAR_INFO} to read property. 395 * <li>Property is not writable. 396 * </ul> 397 */ 398 @RequiresPermission(Car.PERMISSION_CAR_INFO) 399 public static final int INFO_EXTERIOR_DIMENSIONS = 289472779; 400 /** 401 * Current odometer value of the vehicle in kilometers. 402 * 403 * <p>Property Config: 404 * <ul> 405 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 406 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 407 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 408 * <li>{@code Float} property type 409 * </ul> 410 * 411 * <p>Required Permission: 412 * <ul> 413 * <li>Signature|Privileged permission "android.car.permission.CAR_MILEAGE" to read property. 414 * <li>Property is not writable. 415 * </ul> 416 */ 417 @RequiresPermission(Car.PERMISSION_MILEAGE) 418 public static final int PERF_ODOMETER = 291504644; 419 /** 420 * Speed of the vehicle in meters per second. 421 * 422 * <p>When the vehicle is moving forward, {@code PERF_VEHICLE_SPEED} is positive and negative 423 * when the vehicle is moving backward. Also, this value is independent of gear value ({@link 424 * #CURRENT_GEAR} or {@link #GEAR_SELECTION}). For example, if {@link #GEAR_SELECTION} is 425 * {@link VehicleGear#GEAR_NEUTRAL}, {@code PERF_VEHICLE_SPEED} is positive when the vehicle is 426 * moving forward, negative when moving backward, and zero when not moving. 427 * 428 * <p>Property Config: 429 * <ul> 430 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 431 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 432 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 433 * <li>{@code Float} property type 434 * </ul> 435 * 436 * <p>Required Permission: 437 * <ul> 438 * <li>Dangerous permission {@link Car#PERMISSION_SPEED} to read property. 439 * <li>Property is not writable. 440 * </ul> 441 */ 442 @RequiresPermission(Car.PERMISSION_SPEED) 443 public static final int PERF_VEHICLE_SPEED = 291504647; 444 /** 445 * Speed of the vehicle in meters per second for displays. 446 * 447 * <p>Some cars display a slightly slower speed than the actual speed. This is 448 * usually displayed on the speedometer. 449 * 450 * <p>Property Config: 451 * <ul> 452 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 453 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 454 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 455 * <li>{@code Float} property type 456 * </ul> 457 * 458 * <p>Required Permission: 459 * <ul> 460 * <li>Dangerous permission {@link Car#PERMISSION_SPEED} to read property. 461 * <li>Property is not writable. 462 * </ul> 463 */ 464 @RequiresPermission(Car.PERMISSION_SPEED) 465 public static final int PERF_VEHICLE_SPEED_DISPLAY = 291504648; 466 /** 467 * Front bicycle model steering angle for vehicle in degrees. 468 * 469 * <p>Left is negative. 470 * 471 * <p>This property is independent of the angle of the steering wheel. This property 472 * communicates the angle of the front wheels with respect to the vehicle, not the angle of the 473 * steering wheel. 474 * 475 * <p>Property Config: 476 * <ul> 477 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 478 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 479 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 480 * <li>{@code Float} property type 481 * </ul> 482 * 483 * <p>Required Permission: 484 * <ul> 485 * <li>Signature|Privileged permission "android.car.permission.READ_CAR_STEERING" to read 486 * property. 487 * <li>Property is not writable. 488 * </ul> 489 */ 490 @RequiresPermission(Car.PERMISSION_READ_STEERING_STATE) 491 public static final int PERF_STEERING_ANGLE = 291504649; 492 /** 493 * Rear bicycle model steering angle for vehicle in degrees. 494 * 495 * <p>Left is negative. 496 * 497 * <p>This property is independent of the angle of the steering wheel. This property 498 * communicates the angle of the rear wheels with respect to the vehicle, not the angle of the 499 * steering wheel. 500 * 501 * <p>Property Config: 502 * <ul> 503 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 504 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 505 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 506 * <li>{@code Float} property type 507 * </ul> 508 * 509 * <p>Required Permission: 510 * <ul> 511 * <li>Signature|Privileged permission "android.car.permission.READ_CAR_STEERING" to read 512 * property. 513 * <li>Property is not writable. 514 * </ul> 515 */ 516 @RequiresPermission(Car.PERMISSION_READ_STEERING_STATE) 517 public static final int PERF_REAR_STEERING_ANGLE = 291504656; 518 /** 519 * Temperature of engine coolant in celsius. 520 * 521 * <p>Property Config: 522 * <ul> 523 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 524 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 525 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 526 * <li>{@code Float} property type 527 * </ul> 528 * 529 * <p>Required Permission: 530 * <ul> 531 * <li>Signature|Privileged permission "android.car.permission.CAR_ENGINE_DETAILED" to read 532 * property. 533 * <li>Property is not writable. 534 * </ul> 535 */ 536 @RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED) 537 public static final int ENGINE_COOLANT_TEMP = 291504897; 538 /** 539 * Engine oil level. 540 * 541 * <p>Returns the status of the oil level for the vehicle. See {@code VehicleOilLevel} for 542 * possible values for {@code ENGINE_OIL_LEVEL}. 543 * 544 * <p>Property Config: 545 * <ul> 546 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 547 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 548 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 549 * <li>{@code Integer} property type 550 * </ul> 551 * 552 * <p>Required Permission: 553 * <ul> 554 * <li>Signature|Privileged permission "android.car.permission.CAR_ENGINE_DETAILED" to read 555 * property. 556 * <li>Property is not writable. 557 * </ul> 558 * 559 * @data_enum {@link VehicleOilLevel} 560 */ 561 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED)) 562 public static final int ENGINE_OIL_LEVEL = 289407747; 563 /** 564 * Temperature of engine oil in celsius. 565 * 566 * <p>Property Config: 567 * <ul> 568 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 569 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 570 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 571 * <li>{@code Float} property type 572 * </ul> 573 * 574 * <p>Required Permission: 575 * <ul> 576 * <li>Signature|Privileged permission "android.car.permission.CAR_ENGINE_DETAILED" to read 577 * property. 578 * <li>Property is not writable. 579 * </ul> 580 */ 581 @RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED) 582 public static final int ENGINE_OIL_TEMP = 291504900; 583 /** 584 * Engine rpm. 585 * 586 * <p>Property Config: 587 * <ul> 588 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 589 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 590 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 591 * <li>{@code Float} property type 592 * </ul> 593 * 594 * <p>Required Permission: 595 * <ul> 596 * <li>Signature|Privileged permission "android.car.permission.CAR_ENGINE_DETAILED" to read 597 * property. 598 * <li>Property is not writable. 599 * </ul> 600 */ 601 @RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED) 602 public static final int ENGINE_RPM = 291504901; 603 /** 604 * Represents feature for engine idle automatic stop. 605 * 606 * <p>If true, the vehicle may automatically shut off the engine when it is not needed and then 607 * automatically restart it when needed. 608 * 609 * <p>Property Config: 610 * <ul> 611 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 612 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 613 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 614 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 615 * <li>{@code Boolean} property type 616 * </ul> 617 * 618 * <p>Required Permission: 619 * <ul> 620 * <li>Signature|Privileged permission {@link Car#PERMISSION_CAR_ENGINE_DETAILED} to read and 621 * write property. 622 * </ul> 623 * 624 * @hide 625 */ 626 @SystemApi 627 @RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED) 628 public static final int ENGINE_IDLE_AUTO_STOP_ENABLED = 287310624; 629 /** 630 * Impact detected. 631 * 632 * <p>Bit flag property to relay information on whether an impact has occurred on a particular 633 * side of the vehicle as described through the {@link 634 * android.car.hardware.property.ImpactSensorLocation} enum. As a bit flag property, this 635 * property can be set to multiple ORed together values of the enum when necessary. 636 * 637 * <p>For the global area ID (0), the {@link 638 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 639 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which bit flags 640 * from {@link android.car.hardware.property.ImpactSensorLocation} are supported. 641 * 642 * <p>Property Config: 643 * <ul> 644 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 645 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 646 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 647 * <li>{@code Integer} property type 648 * </ul> 649 * 650 * <p>Required Permission: 651 * <ul> 652 * <li>Signature|Privileged permission "android.car.permission.READ_IMPACT_SENSORS" to read 653 * property. 654 * <li>Property is not writable. 655 * </ul> 656 * 657 * @data_enum {@link android.car.hardware.property.ImpactSensorLocation} 658 * 659 * @hide 660 */ 661 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 662 @SystemApi 663 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_IMPACT_SENSORS)) 664 public static final int IMPACT_DETECTED = 289407792; 665 /** 666 * Reports wheel ticks. 667 * 668 * <p>The first element in the array is a reset count. A reset indicates 669 * previous tick counts are not comparable with this and future ones. Some 670 * sort of discontinuity in tick counting has occurred. 671 * 672 * <p>The next four elements represent ticks for individual wheels in the 673 * following order: front left, front right, rear right, rear left. All 674 * tick counts are cumulative. Tick counts increment when the vehicle 675 * moves forward, and decrement when vehicles moves in reverse. The ticks 676 * should be reset to 0 when the vehicle is started by the user. 677 * 678 * <ul> 679 * <li>Long[0] = reset count 680 * <li>Long[1] = front left ticks 681 * <li>Long[2] = front right ticks 682 * <li>Long[3] = rear right ticks 683 * <li>Long[4] = rear left ticks 684 * </ul> 685 * 686 * <p>configArray is used to indicate the micrometers-per-wheel-tick values and 687 * which wheels are supported. Each micrometers-per-wheel-tick value is static (i.e. will not 688 * update based on wheel's status) and a best approximation. For example, if a vehicle has 689 * multiple rim/tire size options, the micrometers-per-wheel-tick values are set to those for 690 * the typically expected rim/tire size. configArray is set as follows: 691 * 692 * <ul> 693 * <li>configArray[0], bits [0:3] = supported wheels. Uses {@link VehicleAreaWheel}. For 694 * example, if all wheels are supported, then configArray[0] = {@link 695 * VehicleAreaWheel#WHEEL_LEFT_FRONT} | {@link VehicleAreaWheel#WHEEL_RIGHT_FRONT} | {@link 696 * VehicleAreaWheel#WHEEL_LEFT_REAR} | {@link VehicleAreaWheel#WHEEL_RIGHT_REAR} 697 * <li>configArray[1] = micrometers per front left wheel tick 698 * <li>configArray[2] = micrometers per front right wheel tick 699 * <li>configArray[3] = micrometers per rear right wheel tick 700 * <li>configArray[4] = micrometers per rear left wheel tick 701 * </ul> 702 * 703 * <p>NOTE: If a wheel is not supported, its value is always 0. 704 * 705 * <p>Property Config: 706 * <ul> 707 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 708 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 709 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 710 * <li>{@code Long[]} property type 711 * </ul> 712 * 713 * <p>Required Permission: 714 * <ul> 715 * <li>Dangerous permission {@link Car#PERMISSION_SPEED} to read property. 716 * <li>Property is not writable. 717 * </ul> 718 */ 719 @RequiresPermission(Car.PERMISSION_SPEED) 720 public static final int WHEEL_TICK = 290521862; 721 /** 722 * Fuel level in milliliters. 723 * 724 * <p>This property communicates the current amount of fuel remaining in the vehicle in 725 * milliliters. This property will not be implemented for electric vehicles. That is, if {@link 726 * #INFO_FUEL_TYPE} only contains {@link FuelType#ELECTRIC}, this property will not be 727 * implemented. For EVs, see {@link #EV_BATTERY_LEVEL}. 728 * 729 * <p>This property's value will not exceed {@link #INFO_FUEL_CAPACITY}. 730 * 731 * <p>Property Config: 732 * <ul> 733 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 734 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 735 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 736 * <li>{@code Float} property type 737 * </ul> 738 * 739 * <p>Required Permission: 740 * <ul> 741 * <li>Dangerous permission {@link Car#PERMISSION_ENERGY} to read property. 742 * <li>Property is not writable. 743 * </ul> 744 */ 745 @RequiresPermission(Car.PERMISSION_ENERGY) 746 public static final int FUEL_LEVEL = 291504903; 747 /** 748 * Fuel door open. 749 * 750 * <p>This property communicates whether the fuel door on the vehicle is open or not. This 751 * property will not be implemented for electric vehicles. That is, if {@link #INFO_FUEL_TYPE} 752 * only contains {@link FuelType#ELECTRIC}, this property will not be implemented. For EVs, see 753 * {@link #EV_CHARGE_PORT_OPEN}. 754 * 755 * <p>Property Config: 756 * <ul> 757 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 758 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 759 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 760 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 761 * <li>{@code Boolean} property type 762 * </ul> 763 * 764 * <p>Required Permissions: 765 * <ul> 766 * <li>Normal permission {@link Car#PERMISSION_ENERGY_PORTS} or Signature|Privileged permission 767 * "android.car.permission.CONTROL_CAR_ENERGY_PORTS"to read property. 768 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_ENERGY_PORTS" to 769 * write property. 770 * </ul> 771 */ 772 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_ENERGY_PORTS, 773 Car.PERMISSION_CONTROL_ENERGY_PORTS})) 774 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ENERGY_PORTS)) 775 public static final int FUEL_DOOR_OPEN = 287310600; 776 /** 777 * EV battery level. 778 * 779 * <p>Returns the current battery level in {@link android.car.VehicleUnit#WATT_HOUR}, if EV or 780 * hybrid. This value will not exceed {@link #EV_CURRENT_BATTERY_CAPACITY}. To calculate the 781 * battery percentage, use: 782 * ({@link #EV_BATTERY_LEVEL}/{@link #EV_CURRENT_BATTERY_CAPACITY})*100. 783 * 784 * <p>Property Config: 785 * <ul> 786 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 787 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 788 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 789 * <li>{@code Float} property type 790 * </ul> 791 * 792 * <p>Required Permission: 793 * <ul> 794 * <li>Dangerous permission {@link Car#PERMISSION_ENERGY} to read property. 795 * <li>Property is not writable. 796 * </ul> 797 */ 798 @RequiresPermission(Car.PERMISSION_ENERGY) 799 public static final int EV_BATTERY_LEVEL = 291504905; 800 /** 801 * Current usable battery capacity for EV or hybrid vehicle. 802 * 803 * <p>Returns the actual value of battery capacity in {@link android.car.VehicleUnit#WATT_HOUR}, 804 * if EV or hybrid. This property captures the real-time usable battery capacity taking into 805 * account factors such as battery aging and temperature dependency. Therefore, this value might 806 * be different from {@link #INFO_EV_BATTERY_CAPACITY} because {@link #INFO_EV_BATTERY_CAPACITY} 807 * returns the nominal battery capacity from when the vehicle was new. 808 * 809 * <p>Property Config: 810 * <ul> 811 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 812 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 813 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 814 * <li>{@code Float} property type 815 * </ul> 816 * 817 * <p>Required Permission: 818 * <ul> 819 * <li>Dangerous permission {@link Car#PERMISSION_ENERGY} to read property. 820 * <li>Property is not writable. 821 * </ul> 822 */ 823 @RequiresPermission(Car.PERMISSION_ENERGY) 824 public static final int EV_CURRENT_BATTERY_CAPACITY = 291504909; 825 /** 826 * EV charge port open. 827 * 828 * <p>If the vehicle has multiple charging ports, this property will return true if any of the 829 * charge ports are open. 830 * 831 * <p>Property Config: 832 * <ul> 833 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 834 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 835 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 836 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 837 * <li>{@code Boolean} property type 838 * </ul> 839 * 840 * <p>Required Permissions: 841 * <ul> 842 * <li>Normal permission {@link Car#PERMISSION_ENERGY_PORTS} or Signature|Privileged permission 843 * "android.car.permission.CONTROL_CAR_ENERGY_PORTS"to read property. 844 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_ENERGY_PORTS" to 845 * write property. 846 * </ul> 847 */ 848 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_ENERGY_PORTS, 849 Car.PERMISSION_CONTROL_ENERGY_PORTS})) 850 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ENERGY_PORTS)) 851 public static final int EV_CHARGE_PORT_OPEN = 287310602; 852 /** 853 * EV charge port connected. 854 * 855 * <p>If the vehicle has multiple charging ports, this property will return true if any of the 856 * charge ports are connected. 857 * 858 * <p>Property Config: 859 * <ul> 860 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 861 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 862 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 863 * <li>{@code Boolean} property type 864 * </ul> 865 * 866 * <p>Required Permission: 867 * <ul> 868 * <li>Normal permission {@link Car#PERMISSION_ENERGY_PORTS} to read property. 869 * <li>Property is not writable. 870 * </ul> 871 */ 872 @RequiresPermission(Car.PERMISSION_ENERGY_PORTS) 873 public static final int EV_CHARGE_PORT_CONNECTED = 287310603; 874 /** 875 * EV instantaneous charge rate in milliwatts. 876 * 877 * <p>Positive rate indicates battery is being charged, and Negative rate indicates battery 878 * being discharged. 879 * 880 * <p>Property Config: 881 * <ul> 882 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 883 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 884 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 885 * <li>{@code Float} property type 886 * </ul> 887 * 888 * <p>Required Permission: 889 * <ul> 890 * <li>Dangerous permission {@link Car#PERMISSION_ENERGY} to read property. 891 * <li>Property is not writable. 892 * </ul> 893 */ 894 @RequiresPermission(Car.PERMISSION_ENERGY) 895 public static final int EV_BATTERY_INSTANTANEOUS_CHARGE_RATE = 291504908; 896 /** 897 * Range remaining in meters. 898 * 899 * <p>Range remaining accounts for all energy sources in a vehicle. For example, a hybrid car's 900 * range will be the sum of the ranges based on fuel and battery. 901 * 902 * <p>Property Config: 903 * <ul> 904 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 905 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 906 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 907 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 908 * <li>{@code Float} property type 909 * </ul> 910 * 911 * <p>Required Permissions: 912 * <ul> 913 * <li>Dangerous permission {@link Car#PERMISSION_ENERGY} or Signature|Privileged permission 914 * "android.car.permission.ADJUST_RANGE_REMAINING" to read property. 915 * <li>Signature|Privileged permission "android.car.permission.ADJUST_RANGE_REMAINING" to write 916 * property. 917 * </ul> 918 */ 919 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_ENERGY, 920 Car.PERMISSION_ADJUST_RANGE_REMAINING})) 921 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_ADJUST_RANGE_REMAINING)) 922 public static final int RANGE_REMAINING = 291504904; 923 /** 924 * EV battery average temperature 925 * 926 * <p>Exposes the temperature of the battery in an EV. If multiple batteries exist in the EV, or 927 * multiple temperature sensors exist, this property will be set to a meaningful weighted 928 * average that best represents the overall temperature of the battery system. 929 * 930 * <p>Property Config: 931 * <ul> 932 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 933 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 934 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 935 * <li>{@code Float} property type 936 * </ul> 937 * 938 * <p>Required Permissions: 939 * <ul> 940 * <li>Dangerous permission {@link Car#PERMISSION_ENERGY} to read property. 941 * <li>Property is not writable. 942 * </ul> 943 */ 944 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 945 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY)) 946 public static final int EV_BATTERY_AVERAGE_TEMPERATURE = 291504910; 947 /** 948 * Tire pressure in kilopascals. 949 * 950 * <p>For each area ID listed in {@link android.car.hardware.CarPropertyConfig#getAreaIds}, the 951 * corresponding {@link android.car.hardware.property.AreaIdConfig#getMinValue()} and {@link 952 * android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the OEM recommended tire 953 * pressure range for that tire. 954 * 955 * <p>Property Config: 956 * <ul> 957 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 958 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_WHEEL} 959 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 960 * <li>{@code Float} property type 961 * </ul> 962 * 963 * <p>Required Permission: 964 * <ul> 965 * <li>Signature|Privileged permission "android.car.permission.CAR_TIRES" to read property. 966 * <li>Property is not writable. 967 * </ul> 968 */ 969 @RequiresPermission(Car.PERMISSION_TIRES) 970 public static final int TIRE_PRESSURE = 392168201; 971 /** 972 * Critically low tire pressure. 973 * 974 * <p>For each area ID listed in {@link android.car.hardware.CarPropertyConfig#getAreaIds}, the 975 * corresponding {@code CRITICALLY_LOW_TIRE_PRESSURE} will be less than or equal the {@link 976 * android.car.hardware.property.AreaIdConfig#getMinValue()} of {@link #TIRE_PRESSURE} for the 977 * same area ID. 978 * 979 * <p>Property Config: 980 * <ul> 981 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 982 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_WHEEL} 983 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 984 * <li>{@code Float} property type 985 * </ul> 986 * 987 * <p>Required Permission: 988 * <ul> 989 * <li>Signature|Privileged permission "android.car.permission.CAR_TIRES" to read property. 990 * <li>Property is not writable. 991 * </ul> 992 */ 993 @RequiresPermission(Car.PERMISSION_TIRES) 994 public static final int CRITICALLY_LOW_TIRE_PRESSURE = 392168202; 995 /** 996 * Currently selected gear by user. 997 * 998 * <p> See {@link VehicleGear} for gear value enum. 999 * 1000 * <p>configArray represents the list of supported gears for the vehicle. For example, 1001 * configArray for an EV vehicle is set as follows: 1002 * 1003 * <ul> 1004 * <li>configArray[0] = {@link VehicleGear#GEAR_REVERSE} 1005 * <li>configArray[1] = {@link VehicleGear#GEAR_PARK} 1006 * <li>configArray[2] = {@link VehicleGear#GEAR_DRIVE} 1007 * </ul> 1008 * 1009 * <p>Example automatic transmission configArray: 1010 * 1011 * <ul> 1012 * <li>configArray[0] = {@link VehicleGear#GEAR_NEUTRAL} 1013 * <li>configArray[1] = {@link VehicleGear#GEAR_REVERSE} 1014 * <li>configArray[2] = {@link VehicleGear#GEAR_PARK} 1015 * <li>configArray[3] = {@link VehicleGear#GEAR_DRIVE} 1016 * <li>configArray[4] = {@link VehicleGear#GEAR_FIRST} 1017 * <li>configArray[5] = {@link VehicleGear#GEAR_SECOND} 1018 * <li>... 1019 * </ul> 1020 * 1021 * <p>Example manual transmission configArray: 1022 * 1023 * <ul> 1024 * <li>configArray[0] = {@link VehicleGear#GEAR_NEUTRAL} 1025 * <li>configArray[1] = {@link VehicleGear#GEAR_REVERSE} 1026 * <li>configArray[4] = {@link VehicleGear#GEAR_FIRST} 1027 * <li>configArray[5] = {@link VehicleGear#GEAR_SECOND} 1028 * <li>... 1029 * </ul> 1030 * 1031 * <p>Property Config: 1032 * <ul> 1033 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1034 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1035 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1036 * <li>{@code Integer} property type 1037 * </ul> 1038 * 1039 * <p>Required Permission: 1040 * <ul> 1041 * <li>Normal permission {@link Car#PERMISSION_POWERTRAIN} to read property. 1042 * <li>Property is not writable. 1043 * </ul> 1044 * 1045 * @data_enum {@link VehicleGear} 1046 */ 1047 @RequiresPermission(Car.PERMISSION_POWERTRAIN) 1048 public static final int GEAR_SELECTION = 289408000; 1049 /** 1050 * Vehicle transmission's current {@link VehicleGear}. 1051 * 1052 * <p>{@code CURRENT_GEAR}'s value may not match that of {@link 1053 * VehiclePropertyIds#GEAR_SELECTION}. For example, if the {@link 1054 * VehiclePropertyIds#GEAR_SELECTION} is {@link VehicleGear#GEAR_DRIVE} in a vehicle with an 1055 * automatic transmission, the {@code CURRENT_GEAR} will be one of {@link 1056 * VehicleGear#GEAR_FIRST}, {@link VehicleGear#GEAR_SECOND}, etc, which reflects the actual gear 1057 * the transmission is currently running in. 1058 * 1059 * <p>configArray represents the list of supported {@link VehicleGear}s for {@code 1060 * CURRENT_GEAR}. For example, the configArray for an EV vehicle is set as follows: 1061 * 1062 * <ul> 1063 * <li>configArray[0] = {@link VehicleGear#GEAR_REVERSE} 1064 * <li>configArray[1] = {@link VehicleGear#GEAR_PARK} 1065 * <li>configArray[2] = {@link VehicleGear#GEAR_DRIVE} 1066 * </ul> 1067 * 1068 * <p>Example automatic transmission configArray: 1069 * 1070 * <ul> 1071 * <li>configArray[0] = {@link VehicleGear#GEAR_NEUTRAL} 1072 * <li>configArray[1] = {@link VehicleGear#GEAR_REVERSE} 1073 * <li>configArray[2] = {@link VehicleGear#GEAR_PARK} 1074 * <li>configArray[4] = {@link VehicleGear#GEAR_FIRST} 1075 * <li>configArray[5] = {@link VehicleGear#GEAR_SECOND} 1076 * <li>... 1077 * </ul> 1078 * 1079 * <p>Example manual transmission configArray: 1080 * 1081 * <ul> 1082 * <li>configArray[0] = {@link VehicleGear#GEAR_NEUTRAL} 1083 * <li>configArray[1] = {@link VehicleGear#GEAR_REVERSE} 1084 * <li>configArray[4] = {@link VehicleGear#GEAR_FIRST} 1085 * <li>configArray[5] = {@link VehicleGear#GEAR_SECOND} 1086 * <li>... 1087 * </ul> 1088 * 1089 * <p>Property Config: 1090 * <ul> 1091 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1092 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1093 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1094 * <li>{@code Integer} property type 1095 * </ul> 1096 * 1097 * <p>Required Permission: 1098 * <ul> 1099 * <li>Normal permission {@link Car#PERMISSION_POWERTRAIN} to read property. 1100 * <li>Property is not writable. 1101 * </ul> 1102 * 1103 * @data_enum {@link VehicleGear} 1104 */ 1105 @RequiresPermission(Car.PERMISSION_POWERTRAIN) 1106 public static final int CURRENT_GEAR = 289408001; 1107 /** 1108 * Parking brake state. 1109 * 1110 * <p>{@code PARKING_BRAKE_ON} is true indicates that the car's parking brake is currently 1111 * engaged. False implies that the car's parking brake is currently disengaged. 1112 * 1113 * <p>Property Config: 1114 * <ul> 1115 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1116 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1117 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1118 * <li>{@code Boolean} property type 1119 * </ul> 1120 * 1121 * <p>Required Permission: 1122 * <ul> 1123 * <li>Normal permission {@link Car#PERMISSION_POWERTRAIN} to read property. 1124 * <li>Property is not writable. 1125 * </ul> 1126 */ 1127 @RequiresPermission(Car.PERMISSION_POWERTRAIN) 1128 public static final int PARKING_BRAKE_ON = 287310850; 1129 /** 1130 * Auto-apply parking brake. 1131 * 1132 * <p>{@code PARKING_BRAKE_AUTO_APPLY} is true indicates that the car's automatic parking brake 1133 * feature is currently enabled. False indicates that the car's automatic parking brake feature 1134 * is currently disabled. 1135 * 1136 * <p>This property is often confused with {@link #PARKING_BRAKE_ON}. The difference is that 1137 * {@link #PARKING_BRAKE_ON} describes whether the actual parking brake is currently on/off, 1138 * whereas {@code PARKING_BRAKE_AUTO_APPLY} describes whether the feature of automatic parking 1139 * brake is enabled/disabled, and does not describe the current state of the actual parking 1140 * brake. 1141 * 1142 * <p>Property Config: 1143 * <ul> 1144 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1145 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1146 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1147 * <li>{@code Boolean} property type 1148 * </ul> 1149 * 1150 * <p>Required Permission: 1151 * <ul> 1152 * <li>Normal permission {@link Car#PERMISSION_POWERTRAIN} to read property. 1153 * <li>Property is not writable. 1154 * </ul> 1155 */ 1156 @RequiresPermission(Car.PERMISSION_POWERTRAIN) 1157 public static final int PARKING_BRAKE_AUTO_APPLY = 287310851; 1158 /** 1159 * Regenerative braking level of an electronic vehicle. 1160 * 1161 * <p>Returns the current setting for the regenerative braking level. Larger setting values mean 1162 * more energy regenerated from braking while smaller setting values mean less energy 1163 * regenerated from braking. 0 means the setting for no regenerative braking. See {@link 1164 * android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link 1165 * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible values. 1166 * 1167 * <p>Property Config: 1168 * <ul> 1169 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 1170 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1171 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1172 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1173 * <li>{@code Integer} property type 1174 * </ul> 1175 * 1176 * <p>Required Permissions: 1177 * <ul> 1178 * <li>Normal permission {@link Car#PERMISSION_POWERTRAIN} or Signature|Privileged permission 1179 * "android.car.permission.CONTROL_CAR_POWERTRAIN" to read property. 1180 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_POWERTRAIN" to write 1181 * property. 1182 * </ul> 1183 */ 1184 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_POWERTRAIN, 1185 Car.PERMISSION_CONTROL_POWERTRAIN})) 1186 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_POWERTRAIN)) 1187 public static final int EV_BRAKE_REGENERATION_LEVEL = 289408012; 1188 /** 1189 * Represents property for the current stopping mode of the vehicle. 1190 * 1191 * <p>For the global area ID, the {@link 1192 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} obtained from {@link 1193 * android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which enum values from 1194 * {@code EvStoppingMode} are supported. {@code EvStoppingMode} may be extended to include more 1195 * states in the future. 1196 * 1197 * <p>Property Config: 1198 * <ul> 1199 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 1200 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1201 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1202 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1203 * <li>{@code Integer} property type 1204 * </ul> 1205 * 1206 * <p>Required Permissions: 1207 * <ul> 1208 * <li>Normal permission {@link Car#PERMISSION_POWERTRAIN} or Signature|Privileged permission 1209 * "android.car.permission.CONTROL_CAR_POWERTRAIN" to read property. 1210 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_POWERTRAIN" to write 1211 * property. 1212 * </ul> 1213 * 1214 * @data_enum {@link EvStoppingMode} 1215 */ 1216 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_POWERTRAIN, 1217 Car.PERMISSION_CONTROL_POWERTRAIN})) 1218 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_POWERTRAIN)) 1219 public static final int EV_STOPPING_MODE = 289408013; 1220 /** 1221 * Warning for fuel low level. 1222 * 1223 * <p>{@code FUEL_LEVEL_LOW} corresponds to the low fuel warning on the dashboard. Once {@code 1224 * FUEL_LEVEL_LOW} is set, it should not be cleared until more fuel is added to the vehicle. 1225 * This property may take into account all fuel sources for a vehicle - for example: 1226 * <ul> 1227 * <li>For a gas powered vehicle, this property is based solely on gas level. 1228 * <li>For a battery powered vehicle, this property is based solely on battery level. 1229 * <li>For a hybrid vehicle, this property may be based on the combination of gas and 1230 * battery levels, at the OEM's discretion. 1231 * </ul> 1232 * 1233 * <p>Property Config: 1234 * <ul> 1235 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1236 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1237 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1238 * <li>{@code Boolean} property type 1239 * </ul> 1240 * 1241 * <p>Required Permission: 1242 * <ul> 1243 * <li>Dangerous permission {@link Car#PERMISSION_ENERGY} to read property. 1244 * <li>Property is not writable. 1245 * </ul> 1246 */ 1247 @RequiresPermission(Car.PERMISSION_ENERGY) 1248 public static final int FUEL_LEVEL_LOW = 287310853; 1249 /** 1250 * Night mode. 1251 * 1252 * <p>True indicates that the night mode sensor has detected that the car cabin environment has 1253 * low light. 1254 * 1255 * <p>Property Config: 1256 * <ul> 1257 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1258 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1259 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1260 * <li>{@code Boolean} property type 1261 * </ul> 1262 * 1263 * <p>Required Permission: 1264 * <ul> 1265 * <li>Normal permission {@link Car#PERMISSION_EXTERIOR_ENVIRONMENT} to read property. 1266 * <li>Property is not writable. 1267 * </ul> 1268 */ 1269 @RequiresPermission(Car.PERMISSION_EXTERIOR_ENVIRONMENT) 1270 public static final int NIGHT_MODE = 287310855; 1271 /** 1272 * State of the vehicles turn signals 1273 * 1274 * <p>See {@code VehicleTurnSignal} for possible values for {@code TURN_SIGNAL_STATE}. 1275 * 1276 * <p>Property Config: 1277 * <ul> 1278 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1279 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1280 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1281 * <li>{@code Integer} property type 1282 * </ul> 1283 * 1284 * <p>Required Permission: 1285 * <ul> 1286 * <li>Signature|Privileged permission "android.car.permission.CAR_EXTERIOR_LIGHTS" to read 1287 * property. 1288 * <li>Property is not writable. 1289 * </ul> 1290 * 1291 * @data_enum {@link VehicleTurnSignal} 1292 */ 1293 @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS) 1294 public static final int TURN_SIGNAL_STATE = 289408008; 1295 /** 1296 * Vehicle's ignition state. 1297 * 1298 * <p>See {@link VehicleIgnitionState} for possible values for {@code IGNITION_STATE}. 1299 * 1300 * <p>Property Config: 1301 * <ul> 1302 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1303 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1304 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1305 * <li>{@code Integer} property type 1306 * </ul> 1307 * 1308 * <p>Required Permission: 1309 * <ul> 1310 * <li>Normal permission {@link Car#PERMISSION_POWERTRAIN} to read property. 1311 * <li>Property is not writable. 1312 * </ul> 1313 * 1314 * @data_enum {@link VehicleIgnitionState} 1315 */ 1316 @RequiresPermission(Car.PERMISSION_POWERTRAIN) 1317 public static final int IGNITION_STATE = 289408009; 1318 /** 1319 * ABS is active. 1320 * 1321 * <p>Property Config: 1322 * <ul> 1323 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1324 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1325 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1326 * <li>{@code Boolean} property type 1327 * </ul> 1328 * 1329 * <p>Required Permission: 1330 * <ul> 1331 * <li>Signature|Privileged permission "android.car.permission.CAR_DYNAMICS_STATE" to read 1332 * property. 1333 * <li>Property is not writable. 1334 * </ul> 1335 */ 1336 @RequiresPermission(Car.PERMISSION_CAR_DYNAMICS_STATE) 1337 public static final int ABS_ACTIVE = 287310858; 1338 /** 1339 * Traction Control is active. 1340 * 1341 * <p>Property Config: 1342 * <ul> 1343 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1344 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1345 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1346 * <li>{@code Boolean} property type 1347 * </ul> 1348 * 1349 * <p>Required Permission: 1350 * <ul> 1351 * <li>Signature|Privileged permission "android.car.permission.CAR_DYNAMICS_STATE" to read 1352 * property. 1353 * <li>Property is not writable. 1354 * </ul> 1355 */ 1356 @RequiresPermission(Car.PERMISSION_CAR_DYNAMICS_STATE) 1357 public static final int TRACTION_CONTROL_ACTIVE = 287310859; 1358 /** 1359 * Enable or disable Electronic Stability Control (ESC). 1360 * 1361 * <p>Returns true if ESC is enabled and false if ESC is disabled. When ESC is enabled, a system 1362 * in the vehicle should be controlling the tires during instances with high risk of skidding to 1363 * actively prevent the same from happening. 1364 * 1365 * <p>This property is defined as read_write, but OEMs have the option to implement it as read 1366 * only. 1367 * 1368 * <p>Property Config: 1369 * <ul> 1370 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 1371 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1372 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1373 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1374 * <li>{@code Boolean} property type 1375 * </ul> 1376 * 1377 * <p>Required Permissions: 1378 * <ul> 1379 * <li>Signature|Privileged permission {@link Car#PERMISSION_CAR_DYNAMICS_STATE} or 1380 * Signature|Privileged permission {@link Car#PERMISSION_CONTROL_CAR_DYNAMICS_STATE} to read 1381 * property. 1382 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_CAR_DYNAMICS_STATE} to 1383 * write property. 1384 * </ul> 1385 * 1386 * @hide 1387 */ 1388 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 1389 @SystemApi 1390 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_CAR_DYNAMICS_STATE, 1391 Car.PERMISSION_CONTROL_CAR_DYNAMICS_STATE})) 1392 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_CAR_DYNAMICS_STATE)) 1393 public static final int ELECTRONIC_STABILITY_CONTROL_ENABLED = 287310862; 1394 /** 1395 * Electronic Stability Control (ESC) state. 1396 * 1397 * <p>Returns the current state of ESC. This property will always return a valid state defined 1398 * in {@link android.car.hardware.property.ElectronicStabilityControlState} or {@link 1399 * android.car.hardware.property.ErrorState}. 1400 * 1401 * <p>For the global area ID (0), the {@link 1402 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 1403 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 1404 * from {@link android.car.hardware.property.ElectronicStabilityControlState} and {@link 1405 * android.car.hardware.property.ErrorState} are supported. 1406 * 1407 * <p>Property Config: 1408 * <ul> 1409 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1410 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1411 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1412 * <li>{@code Integer} property type 1413 * </ul> 1414 * 1415 * <p>Required Permission: 1416 * <ul> 1417 * <li>Signature|Privileged permission {@link Car#PERMISSION_CAR_DYNAMICS_STATE} to read 1418 * property. 1419 * <li>Property is not writable. 1420 * </ul> 1421 * 1422 * @data_enum {@link android.car.hardware.property.ElectronicStabilityControlState} 1423 * @data_enum {@link ErrorState} 1424 * 1425 * @hide 1426 */ 1427 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 1428 @SystemApi 1429 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_CAR_DYNAMICS_STATE)) 1430 public static final int ELECTRONIC_STABILITY_CONTROL_STATE = 289408015; 1431 /** 1432 * Fan speed setting. 1433 * 1434 * <p>Property Config: 1435 * <ul> 1436 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 1437 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1438 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 1439 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1440 * <li>{@code Integer} property type 1441 * </ul> 1442 * 1443 * <p>Required Permission: 1444 * <ul> 1445 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_CLIMATE" to read 1446 * and write property. 1447 * </ul> 1448 */ 1449 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1450 public static final int HVAC_FAN_SPEED = 356517120; 1451 /** 1452 * Fan direction setting. 1453 * 1454 * <p>Property Config: 1455 * <ul> 1456 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 1457 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1458 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 1459 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1460 * <li>{@code Integer} property type 1461 * </ul> 1462 * 1463 * <p>Required Permission: 1464 * <ul> 1465 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_CLIMATE" to read 1466 * and write property. 1467 * </ul> 1468 * 1469 * @data_enum {@link CarHvacFanDirection} 1470 */ 1471 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1472 public static final int HVAC_FAN_DIRECTION = 356517121; 1473 /** 1474 * HVAC current temperature in celsius. 1475 * 1476 * <p>Property Config: 1477 * <ul> 1478 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1479 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 1480 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1481 * <li>{@code Float} property type 1482 * </ul> 1483 * 1484 * <p>Required Permission: 1485 * <ul> 1486 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_CLIMATE" to read 1487 * property. 1488 * <li>Property is not writable. 1489 * </ul> 1490 */ 1491 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1492 public static final int HVAC_TEMPERATURE_CURRENT = 358614274; 1493 /** 1494 * HVAC target temperature set in Celsius. 1495 * 1496 * <p>{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the minimum 1497 * temperature setting in Celsius. 1498 * <p>{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the maximum 1499 * temperature setting in Celsius. 1500 * 1501 * <p>The vehicle may not support setting a continuous range of temperature values in between 1502 * the min and max values. 1503 * 1504 * <p>Therefore, if the vehicle supports {@link #HVAC_TEMPERATURE_VALUE_SUGGESTION}, the 1505 * application should use that property to get a supported value before setting {@code 1506 * HVAC_TEMPERATURE_SET}. The application should also use {@link 1507 * #HVAC_TEMPERATURE_VALUE_SUGGESTION} for converting the temperature from Celsius to Fahrenheit 1508 * and vice versa for this vehicle. 1509 * 1510 * <p>Else if the {@link android.car.hardware.CarPropertyConfig#getConfigArray()} is defined, 1511 * then it represents the list of valid temperature values that can be set. It also describes a 1512 * lookup table to convert the temperature from Celsius to Fahrenheit and vice versa for this 1513 * vehicle. 1514 * 1515 * <p>The {@code configArray} is set as follows: 1516 * <ul> 1517 * <li>{@code configArray[0]} is [the lower bound of the supported temperature in Celsius] 1518 * * 10. 1519 * <li>{@code configArray[1]} is [the upper bound of the supported temperature in Celsius] 1520 * * 10. 1521 * <li>{@code configArray[2]} is [the increment in Celsius] * 10. 1522 * <li>{@code configArray[3]} is 1523 * [the lower bound of the supported temperature in Fahrenheit] * 10. 1524 * <li>{@code configArray[4]} is 1525 * [the upper bound of the supported temperature in Fahrenheit] * 10. 1526 * <li>{@code configArray[5]} is [the increment in Fahrenheit] * 10. 1527 * </ul> 1528 * 1529 * <p>For example, if the vehicle supports temperature values as: 1530 * <pre> 1531 * [16.0, 16.5, 17.0 ,..., 28.0] in Celsius 1532 * [60.5, 61.5, 62.5 ,..., 84.5] in Fahrenheit 1533 * </pre> 1534 * 1535 * <p>The {@code configArray} should be: 1536 * <pre> 1537 * {@code configArray = {160, 280, 5, 605, 845, 10}} 1538 * </pre> 1539 * 1540 * <p>If the {@code configArray} is defined, applications should not use any other method for 1541 * converting temperature values besides {@link #HVAC_TEMPERATURE_VALUE_SUGGESTION}, such as the 1542 * standard unit conversion formula of {@code F = (9/5) * C + 32}. Any value set that is not 1543 * contained within the list of valid values is considered undefined behavior and may result in 1544 * inconsistencies in the value set by the application and the value set in the VHAL. 1545 * 1546 * <p>For converting the temperature from Celsius to Fahrenheit use the following: 1547 * <pre> 1548 * {@code 1549 * // Given tempC and configArray 1550 * float minTempC = configArray.get(0) / 10f; 1551 * float temperatureIncrementCelsius = configArray.get(2) / 10f; 1552 * float minTempF = configArray.get(3) / 10f; 1553 * float temperatureIncrementFahrenheit = configArray.get(5) / 10f; 1554 * // Round to the closest increment 1555 * int numIncrements = Math.round((tempC - minTempC) / temperatureIncrementCelsius); 1556 * float tempF = temperatureIncrementFahrenheit * numIncrements + minTempF; 1557 * } 1558 * </pre> 1559 * <p>For converting the temperature from Fahrenheit to Celsius, use the same method as above 1560 * except changing the Celsius values to the relevant Fahrenheit values. 1561 * 1562 * <p>Othwerise, if neither {@link #HVAC_TEMPERATURE_VALUE_SUGGESTION} nor the {@code 1563 * configArray} are defined, the application should use the standard unit conversion formula of 1564 * {@code F = (9/5) * C + 32}. 1565 * 1566 * <p>Property Config: 1567 * <ul> 1568 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 1569 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1570 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 1571 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1572 * <li>{@code Float} property type 1573 * </ul> 1574 * 1575 * <p>Required Permission: 1576 * <ul> 1577 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_CLIMATE" to read 1578 * and write property. 1579 * </ul> 1580 */ 1581 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1582 public static final int HVAC_TEMPERATURE_SET = 358614275; 1583 /** 1584 * Suggested values for setting HVAC temperature. 1585 * 1586 * <p>Implement the property to help applications understand the closest supported temperature 1587 * value in Celsius or Fahrenheit. 1588 * <ul> 1589 * <li>{@code floatValues[0]} is the requested value that an application wants to set a 1590 * temperature to. 1591 * <li>{@code floatValues[1]} is the unit for {@code floatValues[0]}. It should be one of 1592 * ({@link VehicleUnit#CELSIUS}, {@link VehicleUnit#FAHRENHEIT}). 1593 * <li>{@code floatValues[2]} is the value OEMs suggested in CELSIUS. This value is not 1594 * included in the request. 1595 * <li>{@code floatValues[3]} is the value OEMs suggested in FAHRENHEIT. This value is not 1596 * included in the request. 1597 * </ul> 1598 * 1599 * <p>An application calls 1600 * {@link android.car.hardware.property.CarPropertyManager#setProperty(Class, int, int, Object)} 1601 * with the requested value and unit for the value. OEMs need to return the suggested values 1602 * in {@code floatValues[2]} and {@code floatValues[3]} by 1603 * {@link android.car.hardware.property.CarPropertyManager.CarPropertyEventCallback}. 1604 * 1605 * <p>For example, when a user uses the voice assistant to set HVAC temperature to 66.2 in 1606 * Fahrenheit. 1607 * 1608 * <p>First, an application will set this property with the value 1609 * [66.2, {@link VehicleUnit#FAHRENHEIT}, 0, 0]. If OEMs suggest to set 19.0 in Celsius 1610 * or 66.5 in Fahrenheit for user's request, then car must generate a callback with property 1611 * value [66.2, {@link VehicleUnit#FAHRENHEIT}, 19.0, 66.5]. After the voice assistant 1612 * gets the callback, it will inform the user and set HVAC temperature to the suggested value. 1613 * 1614 * <p>Another example, an application receives 21 Celsius as the current temperature value by 1615 * querying {@link VehiclePropertyIds#HVAC_TEMPERATURE_SET}. But the application wants to know 1616 * what value is displayed on the car's UI in Fahrenheit. 1617 * 1618 * <p>For this, the application sets the property to 1619 * [21, {@link VehicleUnit#CELSIUS}, 0, 0]. If the suggested value by the OEM for 21 1620 * Celsius is 70 Fahrenheit, then car must generate a callback with property value 1621 * [21, {@link VehicleUnit#CELSIUS}, 21.0, 70.0]. In this case, the application can know 1622 * that the value is 70.0 Fahrenheit in the car’s UI. 1623 * 1624 * <p>Property Config: 1625 * <ul> 1626 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} 1627 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1628 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1629 * <li>{@code Float[]} property type 1630 * </ul> 1631 * 1632 * <p>Required Permission: 1633 * <ul> 1634 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_CLIMATE" to read 1635 * and write property. 1636 * </ul> 1637 */ 1638 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1639 public static final int HVAC_TEMPERATURE_VALUE_SUGGESTION = 291570965; 1640 /** 1641 * On/off defrost for designated window. 1642 * 1643 * <p>Property Config: 1644 * <ul> 1645 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 1646 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1647 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_WINDOW} 1648 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1649 * <li>{@code Boolean} property type 1650 * </ul> 1651 * 1652 * <p>Required Permission: 1653 * <ul> 1654 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_CLIMATE" to read 1655 * and write property. 1656 * </ul> 1657 */ 1658 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1659 public static final int HVAC_DEFROSTER = 320865540; 1660 /** 1661 * On/off AC for designated areaId. 1662 * 1663 * <p>Property Config: 1664 * <ul> 1665 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 1666 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1667 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 1668 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1669 * <li>{@code Boolean} property type 1670 * </ul> 1671 * 1672 * <p>Required Permission: 1673 * <ul> 1674 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_CLIMATE" to read 1675 * and write property. 1676 * </ul> 1677 */ 1678 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1679 public static final int HVAC_AC_ON = 354419973; 1680 /** 1681 * On/off max AC. 1682 * 1683 * <p>Property Config: 1684 * <ul> 1685 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 1686 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1687 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 1688 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1689 * <li>{@code Boolean} property type 1690 * </ul> 1691 * 1692 * <p>Required Permission: 1693 * <ul> 1694 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_CLIMATE" to read 1695 * and write property. 1696 * </ul> 1697 */ 1698 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1699 public static final int HVAC_MAX_AC_ON = 354419974; 1700 /** 1701 * On/off max defrost. 1702 * 1703 * <p>Property Config: 1704 * <ul> 1705 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 1706 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1707 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 1708 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1709 * <li>{@code Boolean} property type 1710 * </ul> 1711 * 1712 * <p>Required Permission: 1713 * <ul> 1714 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_CLIMATE" to read 1715 * and write property. 1716 * </ul> 1717 */ 1718 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1719 public static final int HVAC_MAX_DEFROST_ON = 354419975; 1720 /** 1721 * Recirculation on/off. 1722 * 1723 * <p>Property Config: 1724 * <ul> 1725 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 1726 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1727 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 1728 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1729 * <li>{@code Boolean} property type 1730 * </ul> 1731 * 1732 * <p>Required Permission: 1733 * <ul> 1734 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_CLIMATE" to read 1735 * and write property. 1736 * </ul> 1737 */ 1738 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1739 public static final int HVAC_RECIRC_ON = 354419976; 1740 /** 1741 * Enable temperature coupling between areas. 1742 * 1743 * <p>Property Config: 1744 * <ul> 1745 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 1746 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1747 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 1748 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1749 * <li>{@code Boolean} property type 1750 * </ul> 1751 * 1752 * <p>Required Permission: 1753 * <ul> 1754 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_CLIMATE" to read 1755 * and write property. 1756 * </ul> 1757 */ 1758 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1759 public static final int HVAC_DUAL_ON = 354419977; 1760 /** 1761 * On/off automatic mode. 1762 * 1763 * <p>Property Config: 1764 * <ul> 1765 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 1766 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1767 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 1768 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1769 * <li>{@code Boolean} property type 1770 * </ul> 1771 * 1772 * <p>Required Permission: 1773 * <ul> 1774 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_CLIMATE" to read 1775 * and write property. 1776 * </ul> 1777 */ 1778 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1779 public static final int HVAC_AUTO_ON = 354419978; 1780 /** 1781 * Seat heating/cooling. 1782 * 1783 * <p>Property Config: 1784 * <ul> 1785 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 1786 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1787 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 1788 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1789 * <li>{@code Integer} property type 1790 * </ul> 1791 * 1792 * <p>Required Permission: 1793 * <ul> 1794 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_CLIMATE" to read 1795 * and write property. 1796 * </ul> 1797 */ 1798 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1799 public static final int HVAC_SEAT_TEMPERATURE = 356517131; 1800 /** 1801 * Side Mirror Heat. 1802 * 1803 * <p>Property Config: 1804 * <ul> 1805 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 1806 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1807 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_MIRROR} 1808 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1809 * <li>{@code Integer} property type 1810 * </ul> 1811 * 1812 * <p>Required Permission: 1813 * <ul> 1814 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_CLIMATE" to read 1815 * and write property. 1816 * </ul> 1817 */ 1818 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1819 public static final int HVAC_SIDE_MIRROR_HEAT = 339739916; 1820 /** 1821 * Steering Wheel Heating/Cooling. 1822 * 1823 * <p>Property Config: 1824 * <ul> 1825 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 1826 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1827 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1828 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1829 * <li>{@code Integer} property type 1830 * </ul> 1831 * 1832 * <p>Required Permission: 1833 * <ul> 1834 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_CLIMATE" to read 1835 * and write property. 1836 * </ul> 1837 */ 1838 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1839 public static final int HVAC_STEERING_WHEEL_HEAT = 289408269; 1840 /** 1841 * Temperature units for display. 1842 * 1843 * <p>Property Config: 1844 * <ul> 1845 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 1846 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1847 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 1848 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1849 * <li>{@code Integer} property type 1850 * </ul> 1851 * 1852 * <p>Required Permissions: 1853 * <ul> 1854 * <li>Normal permission {@link Car#PERMISSION_READ_DISPLAY_UNITS} or Signature|Privileged 1855 * permission "android.car.permission.CONTROL_CAR_CLIMATE" to read property. 1856 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_CLIMATE" to write 1857 * property. 1858 * </ul> 1859 * 1860 * @data_enum {@link VehicleUnit} 1861 */ 1862 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_READ_DISPLAY_UNITS, 1863 Car.PERMISSION_CONTROL_CAR_CLIMATE})) 1864 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)) 1865 public static final int HVAC_TEMPERATURE_DISPLAY_UNITS = 289408270; 1866 /** 1867 * Actual fan speed. 1868 * 1869 * <p>Property Config: 1870 * <ul> 1871 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1872 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 1873 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1874 * <li>{@code Integer} property type 1875 * </ul> 1876 * 1877 * <p>Required Permission: 1878 * <ul> 1879 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_CLIMATE" to read 1880 * property. 1881 * <li>Property is not writable. 1882 * </ul> 1883 */ 1884 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1885 public static final int HVAC_ACTUAL_FAN_SPEED_RPM = 356517135; 1886 /** 1887 * Represents global power state for HVAC. 1888 * 1889 * <p>Setting this property to false MAY mark some properties that control individual HVAC 1890 * features/subsystems to UNAVAILABLE state. Setting this property to true MAY mark some 1891 * properties that control individual HVAC features/subsystems to AVAILABLE state (unless 1892 * any/all of them are UNAVAILABLE on their own individual merits). 1893 * 1894 * <p>Property Config: 1895 * <ul> 1896 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 1897 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1898 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 1899 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1900 * <li>{@code Boolean} property type 1901 * </ul> 1902 * 1903 * <p>Required Permission: 1904 * <ul> 1905 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_CLIMATE" to read 1906 * and write property. 1907 * </ul> 1908 */ 1909 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1910 public static final int HVAC_POWER_ON = 354419984; 1911 /** 1912 * Fan Positions Available. 1913 * 1914 * <p>Property Config: 1915 * <ul> 1916 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1917 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 1918 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 1919 * <li>{@code Integer[]} property type 1920 * </ul> 1921 * 1922 * <p>Required Permission: 1923 * <ul> 1924 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_CLIMATE" to read 1925 * property. 1926 * <li>Property is not writable. 1927 * </ul> 1928 * 1929 * @data_enum {@link CarHvacFanDirection} 1930 */ 1931 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1932 public static final int HVAC_FAN_DIRECTION_AVAILABLE = 356582673; 1933 /** 1934 * Automatic recirculation on/off. 1935 * 1936 * <p>Property Config: 1937 * <ul> 1938 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 1939 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1940 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 1941 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1942 * <li>{@code Boolean} property type 1943 * </ul> 1944 * 1945 * <p>Required Permission: 1946 * <ul> 1947 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_CLIMATE" to read 1948 * and write property. 1949 * </ul> 1950 */ 1951 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1952 public static final int HVAC_AUTO_RECIRC_ON = 354419986; 1953 /** 1954 * Seat ventilation. 1955 * 1956 * <p>Property Config: 1957 * <ul> 1958 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 1959 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1960 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 1961 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1962 * <li>{@code Integer} property type 1963 * </ul> 1964 * 1965 * <p>Required Permission: 1966 * <ul> 1967 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_CLIMATE" to read 1968 * and write property. 1969 * </ul> 1970 */ 1971 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1972 public static final int HVAC_SEAT_VENTILATION = 356517139; 1973 /** 1974 * ELECTRIC DEFROSTER. 1975 * 1976 * <p>Property Config: 1977 * <ul> 1978 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 1979 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 1980 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_WINDOW} 1981 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 1982 * <li>{@code Boolean} property type 1983 * </ul> 1984 * 1985 * <p>Required Permission: 1986 * <ul> 1987 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_CAR_CLIMATE} to read 1988 * and write property. 1989 * </ul> 1990 * 1991 * @hide 1992 */ 1993 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE) 1994 @SystemApi 1995 public static final int HVAC_ELECTRIC_DEFROSTER_ON = 320865556; 1996 /** 1997 * Distance units for display. 1998 * 1999 * <p>Indicates which units the car is using to display distances to the user. 2000 * 2001 * <p>configArray represents the list of supported units for {@code 2002 * DISTANCE_DISPLAY_UNITS}. Here is an example configArray: 2003 * <ul> 2004 * <li>configArray[0] = {@link VehicleUnit#METER} 2005 * <li>configArray[1] = {@link VehicleUnit#KILOMETER} 2006 * <li>configArray[2] = {@link VehicleUnit#MILE} 2007 * </ul> 2008 * 2009 * <p>Property Config: 2010 * <ul> 2011 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2012 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2013 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 2014 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2015 * <li>{@code Integer} property type 2016 * </ul> 2017 * 2018 * <p>Required Permissions: 2019 * <ul> 2020 * <li>Normal permission {@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property. 2021 * <li>Normal permission {@link Car#PERMISSION_CONTROL_DISPLAY_UNITS} and Signature|Privileged 2022 * permission "android.car.permission.CAR_VENDOR_EXTENSION" to write property. 2023 * </ul> 2024 * 2025 * @data_enum {@link VehicleUnit} 2026 */ 2027 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS)) 2028 @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS, 2029 Car.PERMISSION_VENDOR_EXTENSION})) 2030 public static final int DISTANCE_DISPLAY_UNITS = 289408512; 2031 /** 2032 * Fuel volume units for display. 2033 * 2034 * <p>Indicates which units the car is using to display fuel volume to the user. 2035 * 2036 * <p>configArray represents the list of supported units for {@code 2037 * FUEL_VOLUME_DISPLAY_UNITS}. Here is an example configArray: 2038 * <ul> 2039 * <li>configArray[0] = {@link VehicleUnit#LITER} 2040 * <li>configArray[1] = {@link VehicleUnit#US_GALLON} 2041 * </ul> 2042 * 2043 * <p>Property Config: 2044 * <ul> 2045 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2046 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2047 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 2048 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2049 * <li>{@code Integer} property type 2050 * </ul> 2051 * 2052 * <p>Required Permissions: 2053 * <ul> 2054 * <li>Normal permission {@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property. 2055 * <li>Normal permission {@link Car#PERMISSION_CONTROL_DISPLAY_UNITS} and Signature|Privileged 2056 * permission "android.car.permission.CAR_VENDOR_EXTENSION" to write property. 2057 * </ul> 2058 * 2059 * @data_enum {@link VehicleUnit} 2060 */ 2061 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS)) 2062 @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS, 2063 Car.PERMISSION_VENDOR_EXTENSION})) 2064 public static final int FUEL_VOLUME_DISPLAY_UNITS = 289408513; 2065 /** 2066 * Tire pressure units for display. 2067 * 2068 * <p>Indicates which units the car is using to display tire pressure to the user. 2069 * 2070 * <p>configArray represents the list of supported units for {@code 2071 * TIRE_PRESSURE_DISPLAY_UNITS}. Here is an example configArray: 2072 * <ul> 2073 * <li>configArray[0] = {@link VehicleUnit#KILOPASCAL} 2074 * <li>configArray[1] = {@link VehicleUnit#PSI} 2075 * <li>configArray[2] = {@link VehicleUnit#BAR} 2076 * </ul> 2077 * 2078 * <p>Property Config: 2079 * <ul> 2080 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2081 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2082 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 2083 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2084 * <li>{@code Integer} property type 2085 * </ul> 2086 * 2087 * <p>Required Permissions: 2088 * <ul> 2089 * <li>Normal permission {@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property. 2090 * <li>Normal permission {@link Car#PERMISSION_CONTROL_DISPLAY_UNITS} and Signature|Privileged 2091 * permission "android.car.permission.CAR_VENDOR_EXTENSION" to write property. 2092 * </ul> 2093 * 2094 * @data_enum {@link VehicleUnit} 2095 */ 2096 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS)) 2097 @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS, 2098 Car.PERMISSION_VENDOR_EXTENSION})) 2099 public static final int TIRE_PRESSURE_DISPLAY_UNITS = 289408514; 2100 /** 2101 * EV battery units for display. 2102 * 2103 * <p>Indicates which units the vehicle is using to display EV battery information to the user. 2104 * 2105 * <p>configArray represents the list of supported units for {@code 2106 * EV_BATTERY_DISPLAY_UNITS}. Here is an example configArray: 2107 * <ul> 2108 * <li>configArray[0] = {@link VehicleUnit#WATT_HOUR} 2109 * <li>configArray[1] = {@link VehicleUnit#AMPERE_HOURS} 2110 * <li>configArray[2] = {@link VehicleUnit#KILOWATT_HOUR} 2111 * </ul> 2112 * 2113 * <p>Property Config: 2114 * <ul> 2115 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2116 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2117 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 2118 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2119 * <li>{@code Integer} property type 2120 * </ul> 2121 * 2122 * <p>Required Permissions: 2123 * <ul> 2124 * <li>Normal permission {@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property. 2125 * <li>Normal permission {@link Car#PERMISSION_CONTROL_DISPLAY_UNITS} and Signature|Privileged 2126 * permission "android.car.permission.CAR_VENDOR_EXTENSION" to write property. 2127 * </ul> 2128 * 2129 * @data_enum {@link VehicleUnit} 2130 */ 2131 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS)) 2132 @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS, 2133 Car.PERMISSION_VENDOR_EXTENSION})) 2134 public static final int EV_BATTERY_DISPLAY_UNITS = 289408515; 2135 /** 2136 * Speed units for display. 2137 * 2138 * <p>Indicates type of units the vehicle is using to display speed to user. 2139 * 2140 * <p>configArray represents the list of supported units for {@code 2141 * VEHICLE_SPEED_DISPLAY_UNITS}. Here is an example configArray: 2142 * <ul> 2143 * <li>configArray[0] = {@link VehicleUnit#METER_PER_SEC} 2144 * <li>configArray[1] = {@link VehicleUnit#MILES_PER_HOUR} 2145 * <li>configArray[2] = {@link VehicleUnit#KILOMETERS_PER_HOUR} 2146 * </ul> 2147 * 2148 * <p>Property Config: 2149 * <ul> 2150 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2151 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2152 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 2153 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2154 * <li>{@code Integer} property type 2155 * </ul> 2156 * 2157 * <p>Required Permissions: 2158 * <ul> 2159 * <li>Normal permission {@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property. 2160 * <li>Normal permission {@link Car#PERMISSION_CONTROL_DISPLAY_UNITS} and Signature|Privileged 2161 * permission "android.car.permission.CAR_VENDOR_EXTENSION" to write property. 2162 * </ul> 2163 * 2164 * @data_enum {@link VehicleUnit} 2165 */ 2166 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS)) 2167 @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS, 2168 Car.PERMISSION_VENDOR_EXTENSION})) 2169 public static final int VEHICLE_SPEED_DISPLAY_UNITS = 289408516; 2170 /** 2171 * Fuel consumption units for display. 2172 * 2173 * <p>Indicates type of units the car is using to display fuel consumption information to user. 2174 * 2175 * <p>{@code true} indicates units are distance over volume such as MPG. 2176 * 2177 * <p>{@code false} indicates units are volume over distance such as L/100KM. 2178 * 2179 * <p>Property Config: 2180 * <ul> 2181 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2182 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2183 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 2184 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2185 * <li>{@code Boolean} property type 2186 * </ul> 2187 * 2188 * <p>Required Permissions: 2189 * <ul> 2190 * <li>Normal permission {@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property. 2191 * <li>Normal permission {@link Car#PERMISSION_CONTROL_DISPLAY_UNITS} and Signature|Privileged 2192 * permission "android.car.permission.CAR_VENDOR_EXTENSION" to write property. 2193 * </ul> 2194 */ 2195 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS)) 2196 @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS, 2197 Car.PERMISSION_VENDOR_EXTENSION})) 2198 public static final int FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME = 287311364; 2199 /** 2200 * Outside temperature in celsius. 2201 * 2202 * <p>Property Config: 2203 * <ul> 2204 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2205 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 2206 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 2207 * <li>{@code Float} property type 2208 * </ul> 2209 * 2210 * <p>Required Permission: 2211 * <ul> 2212 * <li>Normal permission {@link Car#PERMISSION_EXTERIOR_ENVIRONMENT} to read property. 2213 * <li>Property is not writable. 2214 * </ul> 2215 */ 2216 @RequiresPermission(Car.PERMISSION_EXTERIOR_ENVIRONMENT) 2217 public static final int ENV_OUTSIDE_TEMPERATURE = 291505923; 2218 /** 2219 * Property to control power state of application processor. 2220 * 2221 * <p>Not exposed through {@link android.car.hardware.property.CarPropertyManager}. 2222 * 2223 * <p>This property is not supported. 2224 * 2225 * @deprecated use {@link android.car.hardware.power.CarPowerManager} instead. 2226 */ 2227 @Deprecated 2228 @RequiresPermission(Car.PERMISSION_CAR_POWER) 2229 public static final int AP_POWER_STATE_REQ = 289475072; 2230 /** 2231 * Property to report power state of application processor. 2232 * 2233 * <p>Not exposed through {@link android.car.hardware.property.CarPropertyManager}. 2234 * 2235 * <p>This property is not supported. 2236 * 2237 * @deprecated use {@link android.car.hardware.power.CarPowerManager} instead. 2238 */ 2239 @Deprecated 2240 @RequiresPermission(Car.PERMISSION_CAR_POWER) 2241 public static final int AP_POWER_STATE_REPORT = 289475073; 2242 /** 2243 * Property to report bootup reason for the current power on. 2244 * 2245 * <p>Not exposed through {@link android.car.hardware.property.CarPropertyManager}. 2246 * 2247 * <p>This property is not supported. 2248 * 2249 * @deprecated use {@link android.car.hardware.power.CarPowerManager} instead. 2250 */ 2251 @Deprecated 2252 @RequiresPermission(Car.PERMISSION_CAR_POWER) 2253 public static final int AP_POWER_BOOTUP_REASON = 289409538; 2254 /** 2255 * Property to represent brightness of the display. 2256 * 2257 * <p>Not exposed through {@link android.car.hardware.property.CarPropertyManager}. 2258 * 2259 * <p>This property is not supported. 2260 * 2261 * @deprecated use {@link android.car.hardware.power.CarPowerManager} instead. 2262 */ 2263 @Deprecated 2264 @RequiresPermission(Car.PERMISSION_CAR_POWER) 2265 public static final int DISPLAY_BRIGHTNESS = 289409539; 2266 /** 2267 * Property to represent brightness of the displays which are controlled separately. 2268 * 2269 * <p>Not exposed through {@link android.car.hardware.property.CarPropertyManager}. 2270 * 2271 * <p>This property is not supported. 2272 * 2273 * @deprecated use {@link android.car.hardware.power.CarPowerManager} instead. 2274 */ 2275 @Deprecated 2276 @RequiresPermission(Car.PERMISSION_CAR_POWER) 2277 public static final int PER_DISPLAY_BRIGHTNESS = 289475076; 2278 /** 2279 * Valet mode enabled 2280 * 2281 * <p>This property allows the user to enable/disable valet mode in their vehicle. Valet mode is 2282 * a privacy and security setting that prevents an untrusted driver to access more private areas 2283 * in the vehicle, such as the glove box or the trunk(s). 2284 * 2285 * <p>This property is defined as read_write, but OEMs have the option to implement it as read 2286 * only. 2287 * 2288 * <p>Property Config: 2289 * <ul> 2290 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2291 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2292 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 2293 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2294 * <li>{@code Boolean} property type 2295 * </ul> 2296 * 2297 * <p>Required Permissions: 2298 * <ul> 2299 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_VALET_MODE} or 2300 * Signature|Privileged permission {@link Car#PERMISSION_CONTROL_VALET_MODE} to read property. 2301 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_VALET_MODE} to write 2302 * property. 2303 * </ul> 2304 * 2305 * @hide 2306 */ 2307 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 2308 @SystemApi 2309 @RequiresPermission.Read(@RequiresPermission( 2310 anyOf = {Car.PERMISSION_READ_VALET_MODE, Car.PERMISSION_CONTROL_VALET_MODE})) 2311 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_VALET_MODE)) 2312 public static final int VALET_MODE_ENABLED = 287312389; 2313 /** 2314 * Head up display (HUD) enabled 2315 * 2316 * <p>This property allows the user to turn on/off the HUD for their seat. 2317 * 2318 * <p>Each HUD in the vehicle will be assigned to the seat that is intended to use it. For 2319 * example, if there is a single HUD in the vehicle that is used by the driver so that they no 2320 * longer need to continuously look at the instrument cluster, then this property will be 2321 * defined with a single area ID that is equal to the driver's seat area ID. 2322 * 2323 * <p>Property Config: 2324 * <ul> 2325 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2326 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2327 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 2328 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2329 * <li>{@code Boolean} property type 2330 * </ul> 2331 * 2332 * <p>Required Permissions: 2333 * <ul> 2334 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_HEAD_UP_DISPLAY_STATUS} or 2335 * Signature|Privileged permission {@link Car#PERMISSION_CONTROL_HEAD_UP_DISPLAY} to read 2336 * property. 2337 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_HEAD_UP_DISPLAY} to write 2338 * property. 2339 * </ul> 2340 * 2341 * @hide 2342 */ 2343 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 2344 @SystemApi 2345 @RequiresPermission.Read(@RequiresPermission( 2346 anyOf = {Car.PERMISSION_READ_HEAD_UP_DISPLAY_STATUS, 2347 Car.PERMISSION_CONTROL_HEAD_UP_DISPLAY})) 2348 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_HEAD_UP_DISPLAY)) 2349 public static final int HEAD_UP_DISPLAY_ENABLED = 354421254; 2350 /** 2351 * Property to feed H/W input events to android. 2352 * 2353 * <p>Not exposed through {@link android.car.hardware.property.CarPropertyManager}. 2354 * 2355 * <p>This property is not supported. 2356 * 2357 * @deprecated car service internal use only. 2358 */ 2359 @Deprecated 2360 public static final int HW_KEY_INPUT = 289475088; 2361 /** 2362 * Door position. 2363 * 2364 * <p>This property is not in any particular unit but in a specified range of relative 2365 * positions. 2366 * 2367 * <p>{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the door's 2368 * position when closed. This value will be 0 2369 * <p>{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the door's 2370 * position when fully open. 2371 * 2372 * <p>All integers between the min and max values are supported and indicate a transition state 2373 * between the closed and fully open positions. 2374 * 2375 * <p>Property Config: 2376 * <ul> 2377 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2378 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2379 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_DOOR} 2380 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2381 * <li>{@code Integer} property type 2382 * </ul> 2383 * 2384 * <p>Required Permission: 2385 * <ul> 2386 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_DOORS" to read and 2387 * write property. 2388 * </ul> 2389 */ 2390 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_DOORS) 2391 public static final int DOOR_POS = 373295872; 2392 /** 2393 * Door move. 2394 * 2395 * <p>This property is not in any particular unit but in a specified range of relative movement 2396 * speeds. 2397 * 2398 * <p>Positive values mean the door is opening and negative values mean the door is closing. 2399 * Larger integers, either positive or negative, indicate a faster speed. Once the door reaches 2400 * the positional limit, the value resets to 0. When this property's value is 0, that means 2401 * there is no movement currently occurring. 2402 * 2403 * <p>See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link 2404 * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. 2405 * All integers between min and max value are supported. 2406 * 2407 * <p>Property Config: 2408 * <ul> 2409 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2410 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2411 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_DOOR} 2412 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2413 * <li>{@code Integer} property type 2414 * </ul> 2415 * 2416 * <p>Required Permission: 2417 * <ul> 2418 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_DOORS" to read and 2419 * write property. 2420 * </ul> 2421 */ 2422 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_DOORS) 2423 public static final int DOOR_MOVE = 373295873; 2424 /** 2425 * Door lock. 2426 * 2427 * <p>True indicates that the door is locked. 2428 * 2429 * <p>Property Config: 2430 * <ul> 2431 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2432 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2433 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_DOOR} 2434 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2435 * <li>{@code Boolean} property type 2436 * </ul> 2437 * 2438 * <p>Required Permission: 2439 * <ul> 2440 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_DOORS" to read and 2441 * write property. 2442 * </ul> 2443 */ 2444 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_DOORS) 2445 public static final int DOOR_LOCK = 371198722; 2446 /** 2447 * Door child lock feature enabled. 2448 * 2449 * <p>Returns true if the door child lock feature is enabled and false if it is disabled. 2450 * If enabled, the door is unable to be opened from the inside. 2451 * 2452 * <p>Property Config: 2453 * <ul> 2454 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2455 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2456 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_DOOR} 2457 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2458 * <li>{@code Boolean} property type 2459 * </ul> 2460 * 2461 * <p>Required Permission: 2462 * <ul> 2463 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_CAR_DOORS} to read 2464 * and write property. 2465 * </ul> 2466 * 2467 * @hide 2468 */ 2469 @SystemApi 2470 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_DOORS) 2471 public static final int DOOR_CHILD_LOCK_ENABLED = 371198723; 2472 /** 2473 * Mirror Z Position. 2474 * 2475 * <p>This property is not in any particular unit but in a specified range of relative 2476 * positions. 2477 * 2478 * <p>{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the mirror's 2479 * position when tilted completely downwards. 2480 * <p>{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the mirror's 2481 * position when tilted completely upwards. 2482 * <p>0 indicates the mirror is not tilted in either direction. 2483 * 2484 * <p>All integers between the min and max values are supported and indicate a transition state 2485 * between the completely downwards and completely upwards positions. 2486 * 2487 * <p>Property Config: 2488 * <ul> 2489 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2490 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2491 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_MIRROR} 2492 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2493 * <li>{@code Integer} property type 2494 * </ul> 2495 * 2496 * <p>Required Permission: 2497 * <ul> 2498 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_MIRRORS" to read and 2499 * write property. 2500 * </ul> 2501 */ 2502 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS) 2503 public static final int MIRROR_Z_POS = 339741504; 2504 /** 2505 * Mirror Z Move. 2506 * 2507 * <p>This property is not in any particular unit but in a specified range of relative movement 2508 * speeds. 2509 * 2510 * <p>Positive values mean the mirror is tilting up and negative values mean the mirror is 2511 * tilting down. Larger integers, either positive or negative, indicate a faster speed. Once the 2512 * mirror reaches the positional limit, the value resets to 0. When this property's value is 0, 2513 * that means there is no movement currently occurring. 2514 * 2515 * <p>See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link 2516 * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. 2517 * All integers between min and max value are supported. 2518 * 2519 * <p>Property Config: 2520 * <ul> 2521 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2522 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2523 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_MIRROR} 2524 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2525 * <li>{@code Integer} property type 2526 * </ul> 2527 * 2528 * <p>Required Permission: 2529 * <ul> 2530 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_MIRRORS" to read and 2531 * write property. 2532 * </ul> 2533 */ 2534 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS) 2535 public static final int MIRROR_Z_MOVE = 339741505; 2536 /** 2537 * Mirror Y Position. 2538 * 2539 * <p>This property is not in any particular unit but in a specified range of relative 2540 * positions. 2541 * 2542 * <p>{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the mirror's 2543 * position when tilted completely to the left. 2544 * <p>{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the mirror's 2545 * position when tilted completely to the right. 2546 * <p>0 indicates the mirror is not tilted in either direction. 2547 * 2548 * <p>All integers between the min and max values are supported and indicate a transition state 2549 * between the extreme left and extreme right positions. 2550 * 2551 * <p>Property Config: 2552 * <ul> 2553 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2554 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2555 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_MIRROR} 2556 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2557 * <li>{@code Integer} property type 2558 * </ul> 2559 * 2560 * <p>Required Permission: 2561 * <ul> 2562 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_MIRRORS" to read and 2563 * write property. 2564 * </ul> 2565 */ 2566 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS) 2567 public static final int MIRROR_Y_POS = 339741506; 2568 /** 2569 * Mirror Y Move. 2570 * 2571 * <p>This property is not in any particular unit but in a specified range of relative movement 2572 * speeds. 2573 * 2574 * <p>Positive values mean the mirror is tilting to the right and negative values mean the 2575 * support is tilting to the left. Larger integers, either positive or negative, indicate a 2576 * faster speed. Once the mirror reaches the positional limit, the value resets to 0. When this 2577 * property's value is 0, that means there is no movement currently occurring. 2578 * 2579 * <p>See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link 2580 * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. 2581 * All integers between min and max value are supported. 2582 * 2583 * <p>Property Config: 2584 * <ul> 2585 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2586 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2587 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_MIRROR} 2588 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2589 * <li>{@code Integer} property type 2590 * </ul> 2591 * 2592 * <p>Required Permission: 2593 * <ul> 2594 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_MIRRORS" to read and 2595 * write property. 2596 * </ul> 2597 */ 2598 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS) 2599 public static final int MIRROR_Y_MOVE = 339741507; 2600 /** 2601 * Mirror Lock. 2602 * 2603 * <p>True indicates all mirror positions are locked and not changeable. 2604 * 2605 * <p>Property Config: 2606 * <ul> 2607 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2608 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2609 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 2610 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2611 * <li>{@code Boolean} property type 2612 * </ul> 2613 * 2614 * <p>Required Permission: 2615 * <ul> 2616 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_MIRRORS" to read and 2617 * write property. 2618 * </ul> 2619 */ 2620 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS) 2621 public static final int MIRROR_LOCK = 287312708; 2622 /** 2623 * Mirror Fold. 2624 * 2625 * <p>Property Config: 2626 * <ul> 2627 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2628 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2629 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 2630 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2631 * <li>{@code Boolean} property type 2632 * </ul> 2633 * 2634 * <p>Required Permission: 2635 * <ul> 2636 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_MIRRORS" to read and 2637 * write property. 2638 * </ul> 2639 */ 2640 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS) 2641 public static final int MIRROR_FOLD = 287312709; 2642 /** 2643 * Represents property for the Mirror Auto Fold feature. 2644 * 2645 * <p>This property is true when the feature for automatically folding the vehicle's mirrors 2646 * (for example, when the mirrors fold inward automatically when one exits and locks the 2647 * vehicle) is enabled. 2648 * 2649 * <p>Property Config: 2650 * <ul> 2651 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2652 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2653 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_MIRROR} 2654 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2655 * <li>{@code Boolean} property type 2656 * </ul> 2657 * 2658 * <p>Required Permission: 2659 * <ul> 2660 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_CAR_MIRRORS} to read and 2661 * write property. 2662 * 2663 * @hide 2664 */ 2665 @SystemApi 2666 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS) 2667 public static final int MIRROR_AUTO_FOLD_ENABLED = 337644358; 2668 /** 2669 * Represents property for the Mirror Auto Tilt feature. 2670 * 2671 * <p>This property is true when the feature for automatically tilting the vehicle's mirrors 2672 * (for example, when the mirrors tilt downward automatically when one reverses the vehicle) is 2673 * enabled. 2674 * 2675 * <p>Property Config: 2676 * <ul> 2677 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2678 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2679 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_MIRROR} 2680 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2681 * <li>{@code Boolean} property type 2682 * </ul> 2683 * 2684 * <p>Required Permission: 2685 * <ul> 2686 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_CAR_MIRRORS} to read and 2687 * write property. 2688 * </ul> 2689 * 2690 * @hide 2691 */ 2692 @SystemApi 2693 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS) 2694 public static final int MIRROR_AUTO_TILT_ENABLED = 337644359; 2695 /** 2696 * Property that represents the current position of the glove box door. 2697 * 2698 * <p>This property is not in any particular unit but in a specified range of relative 2699 * positions. 2700 * 2701 * <p>{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the glove box's 2702 * position when closed. This value will be 0. 2703 * <p>{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the glove box's 2704 * position when fully open. 2705 * 2706 * <p>All integers between the min and max values are supported and indicate a transition state 2707 * between the closed and fully open positions. 2708 * 2709 * <p>The supported area IDs match the seat(s) by which the glove box is intended to be used 2710 * (e.g.) if the front right dashboard has a glove box embedded in it, then the area ID should 2711 * be {@link VehicleAreaSeat#SEAT_ROW_1_RIGHT}). 2712 * 2713 * <p>Property Config: 2714 * <ul> 2715 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2716 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2717 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 2718 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2719 * <li>{@code Integer} property type 2720 * </ul> 2721 * 2722 * <p>Required Permission: 2723 * <ul> 2724 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_GLOVE_BOX} to read and 2725 * write property. 2726 * </ul> 2727 * 2728 * @hide 2729 */ 2730 @SystemApi 2731 @RequiresPermission(Car.PERMISSION_CONTROL_GLOVE_BOX) 2732 public static final int GLOVE_BOX_DOOR_POS = 356518896; 2733 2734 /** 2735 * Lock or unlock the glove box. 2736 * 2737 * <p>If {@code true}, the glove box is locked. If {@code false}, the glove box is unlocked. 2738 * 2739 * <p>The supported area IDs match the seat(s) by which the glove box is intended to be used 2740 * (e.g. if the front right dashboard has a glove box embedded in it, then the area ID will be 2741 * {@link android.car.VehicleAreaSeat#SEAT_ROW_1_RIGHT}). 2742 * 2743 * <p>Property Config: 2744 * <ul> 2745 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2746 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2747 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 2748 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2749 * <li>{@code Boolean} property type 2750 * </ul> 2751 * 2752 * <p>Required Permission: 2753 * <ul> 2754 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_GLOVE_BOX} to read and 2755 * write property. 2756 * </ul> 2757 * 2758 * @hide 2759 */ 2760 @SystemApi 2761 @RequiresPermission(Car.PERMISSION_CONTROL_GLOVE_BOX) 2762 public static final int GLOVE_BOX_LOCKED = 354421745; 2763 2764 /** 2765 * Seat memory select. 2766 * 2767 * <p>This parameter selects the memory preset to use to select the seat position. The {@link 2768 * android.car.hardware.property.AreaIdConfig#getMinValue()} is always 0, and the {@link 2769 * android.car.hardware.property.AreaIdConfig#getMaxValue()} determines the number of seat 2770 * positions available (i.e. numSeatPresets - 1). 2771 * 2772 * <p>Property Config: 2773 * <ul> 2774 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_WRITE} 2775 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 2776 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2777 * <li>{@code Integer} property type 2778 * </ul> 2779 * 2780 * <p>Required Permission: 2781 * <ul> 2782 * <li>Property is not readable. 2783 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to write 2784 * property. 2785 * </ul> 2786 */ 2787 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 2788 public static final int SEAT_MEMORY_SELECT = 356518784; 2789 /** 2790 * Seat memory set. 2791 * 2792 * <p>This setting allows the user to save the current seat position settings into the selected 2793 * preset slot. The {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} for each 2794 * seat position must match the {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} 2795 * for {@link #SEAT_MEMORY_SELECT}. 2796 * 2797 * <p>Property Config: 2798 * <ul> 2799 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_WRITE} 2800 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 2801 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2802 * <li>{@code Integer} property type 2803 * </ul> 2804 * 2805 * <p>Required Permission: 2806 * <ul> 2807 * <li>Property is not readable. 2808 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to write 2809 * property. 2810 * </ul> 2811 */ 2812 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 2813 public static final int SEAT_MEMORY_SET = 356518785; 2814 /** 2815 * Seatbelt buckled. 2816 * 2817 * <p>True indicates belt is buckled. 2818 * 2819 * <p>Property Config: 2820 * <ul> 2821 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2822 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2823 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 2824 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2825 * <li>{@code Boolean} property type 2826 * </ul> 2827 * 2828 * <p>Required Permission: 2829 * <ul> 2830 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read and 2831 * write property. 2832 * </ul> 2833 */ 2834 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 2835 public static final int SEAT_BELT_BUCKLED = 354421634; 2836 /** 2837 * Seatbelt height position. 2838 * 2839 * <p>This property is not in any particular unit but in a specified range of relative 2840 * positions. 2841 * 2842 * <p>{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat belt 2843 * shoulder anchor's lowest position. 2844 * <p>{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat belt 2845 * shoulder anchor's highest position. 2846 * 2847 * <p>All integers between the min and max values are supported and indicate a transition state 2848 * between the lowest and highest positions. 2849 * 2850 * <p>Property Config: 2851 * <ul> 2852 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2853 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2854 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 2855 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2856 * <li>{@code Integer} property type 2857 * </ul> 2858 * 2859 * <p>Required Permission: 2860 * <ul> 2861 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read and 2862 * write property. 2863 * </ul> 2864 */ 2865 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 2866 public static final int SEAT_BELT_HEIGHT_POS = 356518787; 2867 /** 2868 * Seatbelt height move. 2869 * 2870 * <p>This property is not in any particular unit but in a specified range of relative movement 2871 * speeds. 2872 * 2873 * <p>Positive values mean the seat belt's shoulder anchor is moving up and negative values mean 2874 * the seat belt's shoulder anchor is moving down. Larger integers, either positive or negative, 2875 * indicate a faster speed. Once the seat belt's shoulder anchor reaches the positional limit, 2876 * the value resets to 0. When this property's value is 0, that means there is no movement 2877 * currently occurring. 2878 * 2879 * <p>See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link 2880 * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. 2881 * All integers between min and max value are supported. 2882 * 2883 * <p>Property Config: 2884 * <ul> 2885 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2886 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2887 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 2888 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2889 * <li>{@code Integer} property type 2890 * </ul> 2891 * 2892 * <p>Required Permission: 2893 * <ul> 2894 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read and 2895 * write property. 2896 * </ul> 2897 */ 2898 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 2899 public static final int SEAT_BELT_HEIGHT_MOVE = 356518788; 2900 /** 2901 * Seat fore/aft position. 2902 * 2903 * <p>This property is not in any particular unit but in a specified range of relative 2904 * positions. 2905 * 2906 * <p>{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat's 2907 * rearward-most linear position. 2908 * <p>{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat's 2909 * forward-most linear position. 2910 * 2911 * <p>All integers between the min and max values are supported and indicate a transition state 2912 * between the forward most and rearward most positions. 2913 * 2914 * <p>Property Config: 2915 * <ul> 2916 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2917 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2918 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 2919 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2920 * <li>{@code Integer} property type 2921 * </ul> 2922 * 2923 * <p>Required Permission: 2924 * <ul> 2925 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read and 2926 * write property. 2927 * </ul> 2928 */ 2929 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 2930 public static final int SEAT_FORE_AFT_POS = 356518789; 2931 /** 2932 * Seat fore/aft move. 2933 * 2934 * <p>This property moves the entire seat forward/backward in the direction it's facing. 2935 * 2936 * <p>This property is not in any particular unit but in a specified range of relative movement 2937 * speeds. 2938 * 2939 * <p>Positive values mean the seat is moving forward and negative values mean the seat is 2940 * moving backward. Larger integers, either positive or negative, indicate a faster speed. Once 2941 * the seat reaches the positional limit, the value resets to 0. When this property's value is 2942 * 0, that means there is no movement currently occurring. 2943 * 2944 * <p>See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link 2945 * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. 2946 * All integers between min and max value are supported. 2947 * 2948 * <p>Property Config: 2949 * <ul> 2950 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2951 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2952 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 2953 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2954 * <li>{@code Integer} property type 2955 * </ul> 2956 * 2957 * <p>Required Permission: 2958 * <ul> 2959 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read and 2960 * write property. 2961 * </ul> 2962 */ 2963 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 2964 public static final int SEAT_FORE_AFT_MOVE = 356518790; 2965 /** 2966 * Seat backrest angle 1 position. 2967 * 2968 * <p>This property is not in any particular unit but in a specified range of relative 2969 * positions. 2970 * 2971 * <p>{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat 2972 * backrest's full recline position w.r.t the actuator at the bottom of the seat (see {@link 2973 * #SEAT_BACKREST_ANGLE_1_MOVE} for additional details). 2974 * <p>{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat 2975 * backrest's most upright/forward position w.r.t the actuator at the bottom of the seat (see 2976 * {@link #SEAT_BACKREST_ANGLE_1_MOVE} for additional details). 2977 * 2978 * <p>All integers between the min and max values are supported and indicate a transition state 2979 * between the forward most and rearward most positions. 2980 * 2981 * <p>Property Config: 2982 * <ul> 2983 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 2984 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 2985 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 2986 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 2987 * <li>{@code Integer} property type 2988 * </ul> 2989 * 2990 * <p>Required Permission: 2991 * <ul> 2992 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read and 2993 * write property. 2994 * </ul> 2995 */ 2996 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 2997 public static final int SEAT_BACKREST_ANGLE_1_POS = 356518791; 2998 /** 2999 * Seat backrest angle 1 move. 3000 * 3001 * <p>This property moves the seat backrest along the axis of rotation defined by the actuator 3002 * closest to the bottom of the seat. This is the actuator that moves the seat upright/forward 3003 * or into recline as seen in most conventional vehicles. 3004 * 3005 * <p>This property is not in any particular unit but in a specified range of relative movement 3006 * speeds. 3007 * 3008 * <p>Positive values mean the seat is angling forward and negative values mean the seat is 3009 * reclining backward. Larger integers, either positive or negative, indicate a faster speed. 3010 * Once the seat reaches the positional limit, the value resets to 0. When this property's value 3011 * is 0, that means there is no movement currently occurring. 3012 * 3013 * <p>See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link 3014 * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. 3015 * All integers between min and max value are supported. 3016 * 3017 * <p>Property Config: 3018 * <ul> 3019 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3020 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3021 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3022 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3023 * <li>{@code Integer} property type 3024 * </ul> 3025 * 3026 * <p>Required Permission: 3027 * <ul> 3028 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read and 3029 * write property. 3030 * </ul> 3031 */ 3032 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3033 public static final int SEAT_BACKREST_ANGLE_1_MOVE = 356518792; 3034 /** 3035 * Seat backrest angle 2 position. 3036 * 3037 * <p>This property is not in any particular unit but in a specified range of relative 3038 * positions. 3039 * 3040 * <p>{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat 3041 * backrest's full recline position w.r.t the next actuator in the backrest from the one at the 3042 * bottom of the seat (see {@link #SEAT_BACKREST_ANGLE_2_MOVE} for more details). 3043 * <p>{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat 3044 * backrest's most upright/forward position w.r.t the next actuator in the backrest from the one 3045 * at the bottom of the seat (see {@link #SEAT_BACKREST_ANGLE_2_MOVE} for more details). 3046 * 3047 * <p>All integers between the min and max values are supported and indicate a transition state 3048 * between the forward most and rearward most positions. 3049 * 3050 * <p>Property Config: 3051 * <ul> 3052 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3053 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3054 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3055 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3056 * <li>{@code Integer} property type 3057 * </ul> 3058 * 3059 * <p>Required Permission: 3060 * <ul> 3061 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read and 3062 * write property. 3063 * </ul> 3064 */ 3065 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3066 public static final int SEAT_BACKREST_ANGLE_2_POS = 356518793; 3067 /** 3068 * Seat backrest angle 2 move. 3069 * 3070 * <p>This property will be implemented if there exists an additional actuator in the seat 3071 * backrest besides the one at the very bottom of the backrest, which is covered by {@link 3072 * #SEAT_BACKREST_ANGLE_1_MOVE}. This property will move the backrest along the axis of rotation 3073 * defined by this additional actuator. It can be assumed that this actuator is closer to the 3074 * headrest than the one defined by {@link #SEAT_BACKREST_ANGLE_1_MOVE}. 3075 * 3076 * <p>This property is not in any particular unit but in a specified range of relative movement 3077 * speeds. 3078 * 3079 * <p>Positive values mean the seat is angling forward and negative values mean the seat is 3080 * reclining backward. Larger integers, either positive or negative, indicate a faster speed. 3081 * Once the seat reaches the positional limit, the value resets to 0. When this property's value 3082 * is 0, that means there is no movement currently occurring. 3083 * 3084 * <p>See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link 3085 * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. 3086 * All integers between min and max value are supported. 3087 * 3088 * <p>Property Config: 3089 * <ul> 3090 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3091 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3092 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3093 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3094 * <li>{@code Integer} property type 3095 * </ul> 3096 * 3097 * <p>Required Permission: 3098 * <ul> 3099 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read and 3100 * write property. 3101 * </ul> 3102 */ 3103 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3104 public static final int SEAT_BACKREST_ANGLE_2_MOVE = 356518794; 3105 /** 3106 * Seat height position. 3107 * 3108 * <p>This property is not in any particular unit but in a specified range of relative 3109 * positions. 3110 * 3111 * <p>{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat's 3112 * lowest position. 3113 * <p>{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat's 3114 * highest position. 3115 * 3116 * <p>All integers between the min and max values are supported and indicate a transition state 3117 * between the lowest and highest positions. 3118 * 3119 * <p>Property Config: 3120 * <ul> 3121 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3122 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3123 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3124 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3125 * <li>{@code Integer} property type 3126 * </ul> 3127 * 3128 * <p>Required Permission: 3129 * <ul> 3130 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read and 3131 * write property. 3132 * </ul> 3133 */ 3134 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3135 public static final int SEAT_HEIGHT_POS = 356518795; 3136 /** 3137 * Seat height move. 3138 * 3139 * <p>This property is not in any particular unit but in a specified range of relative movement 3140 * speeds. 3141 * 3142 * <p>Positive values mean the seat is moving up and negative values mean the seat is moving 3143 * down. Larger integers, either positive or negative, indicate a faster speed. Once the seat 3144 * reaches the positional limit, the value resets to 0. When this property's value is 0, that 3145 * means there is no movement currently occurring. 3146 * 3147 * <p>See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link 3148 * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. 3149 * All integers between min and max value are supported. 3150 * 3151 * <p>Property Config: 3152 * <ul> 3153 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3154 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3155 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3156 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3157 * <li>{@code Integer} property type 3158 * </ul> 3159 * 3160 * <p>Required Permission: 3161 * <ul> 3162 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read and 3163 * write property. 3164 * </ul> 3165 */ 3166 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3167 public static final int SEAT_HEIGHT_MOVE = 356518796; 3168 /** 3169 * Seat depth position. 3170 * 3171 * <p>This property is not in any particular unit but in a specified range of relative 3172 * positions. 3173 * 3174 * <p>{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat's 3175 * shallowest position. This corresponds to the smallest distance between the front edge of the 3176 * seat and the seat backrest. 3177 * <p>{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat's 3178 * deepest position. This corresponds to the largest distance between the front edge of the seat 3179 * and the seat backrest. 3180 * 3181 * <p>All integers between the min and max values are supported and indicate a transition state 3182 * between the shallowest and deepest positions. 3183 * 3184 * <p>Property Config: 3185 * <ul> 3186 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3187 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3188 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3189 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3190 * <li>{@code Integer} property type 3191 * </ul> 3192 * 3193 * <p>Required Permission: 3194 * <ul> 3195 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read and 3196 * write property. 3197 * </ul> 3198 */ 3199 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3200 public static final int SEAT_DEPTH_POS = 356518797; 3201 /** 3202 * Seat depth move. 3203 * 3204 * <p>This property is not in any particular unit but in a specified range of relative movement 3205 * speeds. 3206 * 3207 * <p>Positive values mean the distance between the seat's front edge and the back of the seat 3208 * is increasing, thus making the seat deeper. Negative values mean the distance between the 3209 * seat's front edge and the back of the seat is decreasing, thus making the seat shallower. 3210 * Larger integers, either positive or negative, indicate a faster speed. Once the seat depth 3211 * reaches its limit, the value resets to 0. When this property's value is 0, that means there 3212 * is no movement currently occurring. 3213 * 3214 * <p>See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link 3215 * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. 3216 * All integers between min and max value are supported. 3217 * 3218 * <p>Property Config: 3219 * <ul> 3220 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3221 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3222 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3223 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3224 * <li>{@code Integer} property type 3225 * </ul> 3226 * 3227 * <p>Required Permission: 3228 * <ul> 3229 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read and 3230 * write property. 3231 * </ul> 3232 */ 3233 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3234 public static final int SEAT_DEPTH_MOVE = 356518798; 3235 /** 3236 * Seat tilt position. 3237 * 3238 * <p>This property is not in any particular unit but in a specified range of relative 3239 * positions. 3240 * 3241 * <p>{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat 3242 * bottom's lowest angular position. This corresponds to the seat's front edge at its lowest 3243 * possible position relative to the rear end of the seat. 3244 * <p>{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat 3245 * bottom's highest angular position. This corresponds to the seat's front edge at its highest 3246 * possible position relative to the rear end of the seat. 3247 * 3248 * <p>All integers between the min and max values are supported and indicate a transition state 3249 * between the lowest and highest positions. 3250 * 3251 * <p>Property Config: 3252 * <ul> 3253 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3254 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3255 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3256 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3257 * <li>{@code Integer} property type 3258 * </ul> 3259 * 3260 * <p>Required Permission: 3261 * <ul> 3262 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read and 3263 * write property. 3264 * </ul> 3265 */ 3266 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3267 public static final int SEAT_TILT_POS = 356518799; 3268 /** 3269 * Seat tilt move. 3270 * 3271 * <p>This property is not in any particular unit but in a specified range of relative movement 3272 * speeds. 3273 * 3274 * <p>Positive values mean the seat cushion is tilting upward such that the seat cushion's front 3275 * edge is higher than the rear end of the seat cushion. Negative values mean the seat cushion 3276 * is tilting downward such that the seat cushion's front edge is lower than the rear end of the 3277 * seat cushion. Larger integers, either positive or negative, indicate a faster speed. Once the 3278 * seat cushion reaches the positional limit, the value resets to 0. When this property's value 3279 * is 0, that means there is no movement currently occurring. 3280 * 3281 * <p>See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link 3282 * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. 3283 * All integers between min and max value are supported. 3284 * 3285 * <p>Property Config: 3286 * <ul> 3287 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3288 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3289 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3290 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3291 * <li>{@code Integer} property type 3292 * </ul> 3293 * 3294 * <p>Required Permission: 3295 * <ul> 3296 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read and 3297 * write property. 3298 * </ul> 3299 */ 3300 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3301 public static final int SEAT_TILT_MOVE = 356518800; 3302 /** 3303 * Lumber fore/aft position. 3304 * 3305 * <p>This property is not in any particular unit but in a specified range of relative 3306 * positions. 3307 * 3308 * <p>{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat lumbar 3309 * support's rearward most position (i.e. least supportive position). 3310 * <p>{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat lumbar 3311 * support's forward most position (i.e. most supportive position). 3312 * 3313 * <p>All integers between the min and max values are supported and indicate a transition state 3314 * between the forward most and rearward most positions. 3315 * 3316 * <p>Property Config: 3317 * <ul> 3318 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3319 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3320 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3321 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3322 * <li>{@code Integer} property type 3323 * </ul> 3324 * 3325 * <p>Required Permission: 3326 * <ul> 3327 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read and 3328 * write property. 3329 * </ul> 3330 */ 3331 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3332 public static final int SEAT_LUMBAR_FORE_AFT_POS = 356518801; 3333 /** 3334 * Lumbar fore/aft move. 3335 * 3336 * <p>This property is not in any particular unit but in a specified range of relative movement 3337 * speeds. 3338 * 3339 * <p>Positive values mean the lumbar support is moving forward towards the front of the seat 3340 * and negative values mean the lumbar support is moving backward away from the front of the 3341 * seat. Larger integers, either positive or negative, indicate a faster speed. Once the lumbar 3342 * support reaches the positional limit, the value resets to 0. When this property's value is 0, 3343 * that means there is no movement currently occurring. 3344 * 3345 * <p>See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link 3346 * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. 3347 * All integers between min and max value are supported. 3348 * 3349 * <p>Property Config: 3350 * <ul> 3351 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3352 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3353 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3354 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3355 * <li>{@code Integer} property type 3356 * </ul> 3357 * 3358 * <p>Required Permission: 3359 * <ul> 3360 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read and 3361 * write property. 3362 * </ul> 3363 */ 3364 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3365 public static final int SEAT_LUMBAR_FORE_AFT_MOVE = 356518802; 3366 /** 3367 * Lumbar side support position. 3368 * 3369 * <p>This property is not in any particular unit but in a specified range of relative 3370 * positions. 3371 * 3372 * <p>{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat lumbar 3373 * side support's thinnest position (i.e most support). 3374 * <p>{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat lumbar 3375 * side support's widest position (i.e least support). 3376 * 3377 * <p>All integers between the min and max values are supported and indicate a transition state 3378 * between the thinnest and widest positions. 3379 * 3380 * <p>Property Config: 3381 * <ul> 3382 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3383 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3384 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3385 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3386 * <li>{@code Integer} property type 3387 * </ul> 3388 * 3389 * <p>Required Permission: 3390 * <ul> 3391 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read and 3392 * write property. 3393 * </ul> 3394 */ 3395 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3396 public static final int SEAT_LUMBAR_SIDE_SUPPORT_POS = 356518803; 3397 /** 3398 * Lumbar side support move. 3399 * 3400 * <p>This property is not in any particular unit but in a specified range of relative movement 3401 * speeds. 3402 * 3403 * <p>Positive values mean the lumbar side support is getting wider (i.e. less support) and 3404 * negative values mean the lumbar side support is getting thinner (i.e. more support). Larger 3405 * integers, either positive or negative, indicate a faster speed. Once the lumbar side support 3406 * reaches the positional limit, the value resets to 0. When this property's value is 0, that 3407 * means there is no movement currently occurring. 3408 * 3409 * <p>See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link 3410 * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. 3411 * All integers between min and max value are supported. 3412 * 3413 * <p>Property Config: 3414 * <ul> 3415 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3416 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3417 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3418 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3419 * <li>{@code Integer} property type 3420 * </ul> 3421 * 3422 * <p>Required Permission: 3423 * <ul> 3424 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read and 3425 * write property. 3426 * </ul> 3427 */ 3428 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3429 public static final int SEAT_LUMBAR_SIDE_SUPPORT_MOVE = 356518804; 3430 3431 /** 3432 * Headrest height position. 3433 * 3434 * <p>Not exposed through {@link android.car.hardware.property.CarPropertyManager}. 3435 * 3436 * <p>This property is not supported. 3437 * 3438 * @deprecated because it is defined as type {@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}, 3439 * which means all seats use the same value. Use {@link #SEAT_HEADREST_HEIGHT_POS_V2} instead 3440 * which fixes this issue by being defined as type 3441 * {@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT}. 3442 */ 3443 @Deprecated 3444 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3445 public static final int SEAT_HEADREST_HEIGHT_POS = 289409941; 3446 3447 /** 3448 * Headrest height position. 3449 * 3450 * <p>This property is not in any particular unit but in a specified range of relative 3451 * positions. 3452 * 3453 * <p>The {@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat 3454 * headrest's shortest position. 3455 * <p>The {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat 3456 * headrest's tallest position. 3457 * 3458 * <p>All integers between the min and max values are supported and indicate a transition state 3459 * between the shortest and tallest positions. 3460 * 3461 * <p>{@link android.car.hardware.CarPropertyConfig#getAreaIds()} specifies which seats are 3462 * supported. 3463 * 3464 * <p>Property Config: 3465 * <ul> 3466 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3467 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3468 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3469 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3470 * <li>{@code Integer} property type 3471 * </ul> 3472 * 3473 * <p>Required Permission: 3474 * <ul> 3475 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read 3476 * and write property. 3477 * </ul> 3478 */ 3479 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3480 public static final int SEAT_HEADREST_HEIGHT_POS_V2 = 356518820; 3481 3482 /** 3483 * Headrest height move. 3484 * 3485 * <p>This property is not in any particular unit but in a specified range of relative movement 3486 * speeds. 3487 * 3488 * <p>Positive values mean the headrest is moving up and negative values mean the headrest is 3489 * moving down. Larger integers, either positive or negative, indicate a faster speed. Once the 3490 * headrest reaches the positional limit, the value resets to 0. When this property's value is 3491 * 0, that means there is no movement currently occurring. 3492 * 3493 * <p>See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link 3494 * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. 3495 * All integers between min and max value are supported. 3496 * 3497 * <p>Property Config: 3498 * <ul> 3499 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3500 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3501 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3502 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3503 * <li>{@code Integer} property type 3504 * </ul> 3505 * 3506 * <p>Required Permission: 3507 * <ul> 3508 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read 3509 * and write property. 3510 * </ul> 3511 */ 3512 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3513 public static final int SEAT_HEADREST_HEIGHT_MOVE = 356518806; 3514 /** 3515 * Headrest angle position. 3516 * 3517 * <p>This property is not in any particular unit but in a specified range of relative 3518 * positions. 3519 * 3520 * <p>The {@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat 3521 * headrest's full recline position. 3522 * <p>The {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat 3523 * headrest's most upright/forward position. 3524 * 3525 * <p>All integers between the min and max values are supported and indicate a transition state 3526 * between the forward most and rearward most positions. 3527 * 3528 * <p>Property Config: 3529 * <ul> 3530 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3531 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3532 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3533 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3534 * <li>{@code Integer} property type 3535 * </ul> 3536 * 3537 * <p>Required Permission: 3538 * <ul> 3539 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read 3540 * and write property. 3541 * </ul> 3542 */ 3543 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3544 public static final int SEAT_HEADREST_ANGLE_POS = 356518807; 3545 /** 3546 * Headrest angle move. 3547 * 3548 * <p>This property is not in any particular unit but in a specified range of relative movement 3549 * speeds. 3550 * 3551 * <p>Positive values mean the headrest is moving upright/forward and negative values mean the 3552 * headrest is reclining. Larger integers, either positive or negative, indicate a faster speed. 3553 * Once the headrest reaches the positional limit, the value resets to 0. When this property's 3554 * value is 0, that means there is no movement currently occurring. 3555 * 3556 * <p>See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link 3557 * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. 3558 * All integers between min and max value are supported. 3559 * 3560 * <p>Property Config: 3561 * <ul> 3562 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3563 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3564 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3565 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3566 * <li>{@code Integer} property type 3567 * </ul> 3568 * 3569 * <p>Required Permission: 3570 * <ul> 3571 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read 3572 * and write property. 3573 * </ul> 3574 */ 3575 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3576 public static final int SEAT_HEADREST_ANGLE_MOVE = 356518808; 3577 /** 3578 * Headrest fore/aft position. 3579 * 3580 * <p>This property is not in any particular unit but in a specified range of relative 3581 * positions. 3582 * 3583 * <p>The {@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat 3584 * headrest's rearward-most linear position. 3585 * <p>The {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat 3586 * headrest's forward-most linear position. 3587 * 3588 * <p>All integers between the min and max values are supported and indicate a transition state 3589 * between the forward most and rearward most positions. 3590 * 3591 * <p>Property Config: 3592 * <ul> 3593 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3594 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3595 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3596 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3597 * <li>{@code Integer} property type 3598 * </ul> 3599 * 3600 * <p>Required Permission: 3601 * <ul> 3602 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read 3603 * and write property. 3604 * </ul> 3605 */ 3606 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3607 public static final int SEAT_HEADREST_FORE_AFT_POS = 356518809; 3608 /** 3609 * Headrest fore/aft move. 3610 * 3611 * <p>This property is not in any particular unit but in a specified range of relative movement 3612 * speeds. 3613 * 3614 * <p>Positive values mean the headrest is moving forward towards the front of the seat and 3615 * negative values mean the headrest is moving backward away from the front of the seat. Larger 3616 * integers, either positive or negative, indicate a faster speed. Once the headrest reaches the 3617 * positional limit, the value resets to 0. When this property's value is 0, that means there is 3618 * no movement currently occurring. 3619 * 3620 * <p>See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link 3621 * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. 3622 * All integers between min and max value are supported. 3623 * 3624 * <p>Property Config: 3625 * <ul> 3626 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3627 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3628 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3629 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3630 * <li>{@code Integer} property type 3631 * </ul> 3632 * 3633 * <p>Required Permission: 3634 * <ul> 3635 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read 3636 * and write property. 3637 * </ul> 3638 */ 3639 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3640 public static final int SEAT_HEADREST_FORE_AFT_MOVE = 356518810; 3641 /** 3642 * Represents property for state of the footwell lights. 3643 * 3644 * <p>{@code SEAT_FOOTWELL_LIGHTS_STATE} reflects the current state of the lights at any point 3645 * in time. This is different from the function of {@link #SEAT_FOOTWELL_LIGHTS_SWITCH} which 3646 * represents the position of the switch controlling the lights. Therefore, {@code 3647 * SEAT_FOOTWELL_LIGHTS_STATE} may not match the value of {@link #SEAT_FOOTWELL_LIGHTS_SWITCH} 3648 * (e.g. {@link #SEAT_FOOTWELL_LIGHTS_SWITCH}={@code VehicleLightSwitch#STATE_AUTOMATIC} and 3649 * {@code SEAT_FOOTWELL_LIGHTS_STATE}={@code VehicleLightState#STATE_ON}). 3650 * 3651 * <p>This property will only be implemented if {@code SEAT_FOOTWELL_LIGHTS_STATE}'s value may 3652 * be different from that of {@link #CABIN_LIGHTS_STATE}. 3653 * 3654 * <p>For each supported area ID, the {@link 3655 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} obtained from {@link 3656 * android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which enum values from 3657 * {@code VehicleLightState} are supported. 3658 * 3659 * <p>Property Config: 3660 * <ul> 3661 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3662 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3663 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3664 * <li>{@code Integer} property type 3665 * </ul> 3666 * 3667 * <p>Required Permission: 3668 * <ul> 3669 * <li>Signature|Privileged permission "android.car.permission.READ_CAR_INTERIOR_LIGHTS" to 3670 * read property. 3671 * <li>Property is not writable. 3672 * </ul> 3673 * 3674 * @data_enum {@link VehicleLightState} 3675 */ 3676 @RequiresPermission(Car.PERMISSION_READ_INTERIOR_LIGHTS) 3677 public static final int SEAT_FOOTWELL_LIGHTS_STATE = 356518811; 3678 /** 3679 * Represents property for switch of the footwell lights. 3680 * 3681 * <p>{@code SEAT_FOOTWELL_LIGHTS_SWITCH} represents the position of the switch controlling the 3682 * lights. This is different from the function of {@link #SEAT_FOOTWELL_LIGHTS_STATE} which 3683 * reflects the current state of the lights at any point in time. Therefore, {@code 3684 * SEAT_FOOTWELL_LIGHTS_SWITCH} may not match the value of {@link #SEAT_FOOTWELL_LIGHTS_STATE} 3685 * (e.g. {@code SEAT_FOOTWELL_LIGHTS_SWITCH}={@code VehicleLightSwitch#STATE_AUTOMATIC} and 3686 * {@link #SEAT_FOOTWELL_LIGHTS_STATE}={@code VehicleLightState#STATE_ON}). 3687 * 3688 * <p>This property will only be implemented if {@code SEAT_FOOTWELL_LIGHTS_SWITCH}'s value may 3689 * be different from that of {@link #CABIN_LIGHTS_SWITCH}. 3690 * 3691 * <p>For each supported area ID, the {@link 3692 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} obtained from {@link 3693 * android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which enum values from 3694 * {@code VehicleLightSwitch} are supported. 3695 * 3696 * <p>Property Config: 3697 * <ul> 3698 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3699 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3700 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3701 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3702 * <li>{@code Integer} property type 3703 * </ul> 3704 * 3705 * <p>Required Permission: 3706 * <ul> 3707 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_INTERIOR_LIGHTS" to 3708 * read and write property. 3709 * </ul> 3710 * 3711 * @data_enum {@link VehicleLightSwitch} 3712 */ 3713 @RequiresPermission(Car.PERMISSION_CONTROL_INTERIOR_LIGHTS) 3714 public static final int SEAT_FOOTWELL_LIGHTS_SWITCH = 356518812; 3715 /** 3716 * Represents property for Seat easy access feature. 3717 * 3718 * <p>If true, the seat will automatically adjust to make it easier for the occupant to enter 3719 * and exit the vehicle. Each area ID maps to the seat that the user is trying to enter/exit 3720 * with the help of the easy access feature. 3721 * 3722 * <p>Property Config: 3723 * <ul> 3724 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3725 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3726 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3727 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3728 * <li>{@code Boolean} property type 3729 * </ul> 3730 * 3731 * <p>Required Permission: 3732 * <ul> 3733 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_CAR_SEATS} to read and 3734 * write property. 3735 * </ul> 3736 * 3737 * @hide 3738 */ 3739 @SystemApi 3740 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3741 public static final int SEAT_EASY_ACCESS_ENABLED = 354421661; 3742 /** 3743 * Represents feature to enable/disable a seat's ability to deploy airbag(s) when triggered 3744 * (e.g. by a crash). 3745 * 3746 * <p>If true, it means the seat's airbags are enabled, and if triggered (e.g. by a crash), they 3747 * will deploy. If false, it means the seat's airbags are disabled, and they will not deploy 3748 * under any circumstance. This property does not indicate if the airbags are deployed or not. 3749 * 3750 * <p>Property Config: 3751 * <ul> 3752 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3753 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3754 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3755 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3756 * <li>{@code Boolean} property type 3757 * </ul> 3758 * 3759 * <p>Required Permission: 3760 * <ul> 3761 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_CAR_AIRBAGS} to read and 3762 * write property. 3763 * </ul> 3764 * 3765 * @hide 3766 */ 3767 @SystemApi 3768 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_AIRBAGS) 3769 public static final int SEAT_AIRBAG_ENABLED = 354421662; 3770 /** 3771 * State of deployment for seat airbags. 3772 * 3773 * <p>Bit flag property to relay information on which airbags have been deployed in the vehicle 3774 * at each seat, vs which ones are currently still armed. When SEAT_AIRBAG_ENABLED is set to 3775 * false at a particular areaId, this property will be UNAVAILABLE at that areaId. 3776 * 3777 * <p>Enums apply to each seat, not the global vehicle. For example, 3778 * {@link android.car.hardware.property.VehicleAirbagLocation#CURTAIN} at the driver seat areaId 3779 * represents whether the driver side curtain airbag has been deployed. Multiple bit flags can 3780 * be set to indicate that multiple different airbags have been deployed for the seat. 3781 * 3782 * <p>For each seat area ID, the {@link 3783 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 3784 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 3785 * from {@link android.car.hardware.property.VehicleAirbagLocation} are supported. 3786 * 3787 * <p>Property Config: 3788 * <ul> 3789 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3790 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3791 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3792 * <li>{@code Integer} property type 3793 * </ul> 3794 * 3795 * <p>Required Permission: 3796 * <ul> 3797 * <li>Signature|Privileged permission "android.car.permission.READ_CAR_AIRBAGS" to read 3798 * property. 3799 * <li>Property is not writable. 3800 * </ul> 3801 * 3802 * @data_enum {@link android.car.hardware.property.VehicleAirbagLocation} 3803 * 3804 * @hide 3805 */ 3806 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 3807 @SystemApi 3808 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_CAR_AIRBAGS)) 3809 public static final int SEAT_AIRBAGS_DEPLOYED = 356518821; 3810 /** 3811 * Represents property for seat’s hipside (bottom cushion’s side) support position. 3812 * 3813 * <p>This property is not in any particular unit but in a specified range of relative 3814 * positions. 3815 * 3816 * <p>The {@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat 3817 * hipside support's thinnest position (i.e. most support). 3818 * <p>The {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat 3819 * hipside support's widest position (i.e. least support). 3820 * 3821 * <p>All integers between the min and max values are supported and indicate a transition state 3822 * between the thinnest and widest positions. 3823 * 3824 * <p>Property Config: 3825 * <ul> 3826 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3827 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3828 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3829 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3830 * <li>{@code Integer} property type 3831 * </ul> 3832 * 3833 * <p>Required Permission: 3834 * <ul> 3835 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_CAR_SEATS} to read and 3836 * write property. 3837 * </ul> 3838 * 3839 * @hide 3840 */ 3841 @SystemApi 3842 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3843 public static final int SEAT_CUSHION_SIDE_SUPPORT_POS = 356518815; 3844 /** 3845 * Represents property for movement direction and speed of seat cushion side support. 3846 * 3847 * <p>This property is not in any particular unit but in a specified range of relative movement 3848 * speeds. 3849 * 3850 * <p>Positive values means the seat cushion side support is growing wider (i.e. less support) 3851 * and negative values means the seat cushion side support is growing thinner (i.e. more 3852 * support). Larger integers, either positive or negative, indicate a faster speed. Once the 3853 * seat cushion side support reaches the positional limit, the value resets to 0. When this 3854 * property's value is 0, that means there is no movement currently occurring. 3855 * 3856 * <p>See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link 3857 * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. 3858 * All integers between min and max value are supported. 3859 * 3860 * <p>Property Config: 3861 * <ul> 3862 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3863 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3864 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3865 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3866 * <li>{@code Integer} property type 3867 * </ul> 3868 * 3869 * <p>Required Permission: 3870 * <ul> 3871 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_CAR_SEATS} to read and 3872 * write property. 3873 * </ul> 3874 * 3875 * @hide 3876 */ 3877 @SystemApi 3878 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3879 public static final int SEAT_CUSHION_SIDE_SUPPORT_MOVE = 356518816; 3880 /** 3881 * Represents property for seat’s lumbar support vertical position. 3882 * 3883 * <p>This property is not in any particular unit but in a specified range of relative 3884 * positions. 3885 * 3886 * <p>The {@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the seat 3887 * lumbar support's lowest position. 3888 * <p>The {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat 3889 * lumbar support's highest position. 3890 * 3891 * <p>All integers between the min and max values are supported and indicate a transition state 3892 * between the lowest and highest positions. 3893 * 3894 * <p>Property Config: 3895 * <ul> 3896 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3897 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3898 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3899 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3900 * <li>{@code Integer} property type 3901 * </ul> 3902 * 3903 * <p>Required Permission: 3904 * <ul> 3905 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_CAR_SEATS} to read and 3906 * write property. 3907 * </ul> 3908 * 3909 * @hide 3910 */ 3911 @SystemApi 3912 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3913 public static final int SEAT_LUMBAR_VERTICAL_POS = 356518817; 3914 /** 3915 * Represents property for vertical movement direction and speed of seat lumbar support. 3916 * 3917 * <p>This property is not in any particular unit but in a specified range of relative movement 3918 * speeds. 3919 * 3920 * <p>Positive values mean the lumbar support is moving up and negative values mean the lumbar 3921 * support is moving down. Larger integers, either positive or negative, indicate a faster 3922 * speed. Once the lumbar support reaches the positional limit, the value resets to 0. When this 3923 * property's value is 0, that means there is no movement currently occurring. 3924 * 3925 * <p>See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link 3926 * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. 3927 * All integers between min and max value are supported. 3928 * 3929 * <p>Property Config: 3930 * <ul> 3931 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3932 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3933 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3934 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3935 * <li>{@code Integer} property type 3936 * </ul> 3937 * 3938 * <p>Required Permission: 3939 * <ul> 3940 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_CAR_SEATS} to read and 3941 * write property. 3942 * </ul> 3943 * 3944 * @hide 3945 */ 3946 @SystemApi 3947 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3948 public static final int SEAT_LUMBAR_VERTICAL_MOVE = 356518818; 3949 /** 3950 * Represents property that indicates the current walk-in position of the seat. 3951 * 3952 * <p>This property is not in any particular unit but in a specified range of relative 3953 * positions. 3954 * 3955 * <p>{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the normal seat 3956 * position. 3957 * <p>{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the seat's 3958 * position in full walk-in mode. 3959 * 3960 * <p>All integers in between the min and max values are supported and indicate a transition 3961 * state between the normal and walk-in positions. The area IDs match the seats that actually 3962 * move when the walk-in feature activates. 3963 * 3964 * <p>Property Config: 3965 * <ul> 3966 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 3967 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 3968 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 3969 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 3970 * <li>{@code Integer} property type 3971 * </ul> 3972 * 3973 * <p>Required Permission: 3974 * <ul> 3975 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_CAR_SEATS} to read and 3976 * write property. 3977 * </ul> 3978 * 3979 * @hide 3980 */ 3981 @SystemApi 3982 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 3983 public static final int SEAT_WALK_IN_POS = 356518819; 3984 /** 3985 * Seat belt pretensioner deployed. 3986 * 3987 * <p>Property to relay information on whether the seat belt pretensioner has been deployed for 3988 * a particular seat due to a collision. This is different from the regular seat belt tightening 3989 * system that continuously adds tension to the seat belts so that they fit snugly around the 3990 * person sitting in the seat, nor is it the seat belt retractor system that locks the seat belt 3991 * in place during sudden brakes or when the user jerks the seat belt. 3992 * 3993 * <p>If this property is dependant on the state of other properties, and if those properties 3994 * are currently in the state that doesn't support this property, reading this property will 3995 * throw {@link android.car.hardware.property.PropertyNotAvailableException}. 3996 * 3997 * <p>Property Config: 3998 * <ul> 3999 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4000 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 4001 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 4002 * <li>{@code Boolean} property type 4003 * </ul> 4004 * 4005 * <p>Required Permission: 4006 * <ul> 4007 * <li>Signature|Privileged permission "android.car.permission.READ_CAR_SEAT_BELTS" to read 4008 * property. 4009 * <li>Property is not writable. 4010 * </ul> 4011 * 4012 * @hide 4013 */ 4014 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 4015 @SystemApi 4016 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_CAR_SEAT_BELTS)) 4017 public static final int SEAT_BELT_PRETENSIONER_DEPLOYED = 354421670; 4018 /** 4019 * Seat Occupancy. 4020 * 4021 * <p>Property Config: 4022 * <ul> 4023 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4024 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 4025 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 4026 * <li>{@code Integer} property type 4027 * </ul> 4028 * 4029 * <p>Required Permission: 4030 * <ul> 4031 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_SEATS" to read 4032 * property. 4033 * <li>Property is not writable. 4034 * </ul> 4035 * 4036 * @data_enum {@link VehicleSeatOccupancyState} 4037 */ 4038 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS) 4039 public static final int SEAT_OCCUPANCY = 356518832; 4040 /** 4041 * Window Position. 4042 * 4043 * <p>This property is not in any particular unit but in a specified range of relative 4044 * positions. 4045 * 4046 * <p>{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the window's 4047 * position when closed/fully open out of plane. If the window cannot open out of plane, then 4048 * {@link android.car.hardware.property.AreaIdConfig#getMinValue()} is the position of the 4049 * window when fully closed and must be 0. If the window can open out of plane, {@link 4050 * android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the window is fully open 4051 * in its position out of plane and will be a negative value. 4052 * <p>{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the window's 4053 * position when fully open. 4054 * 4055 * <p>All integers in between the min and max values are supported and indicate a transition 4056 * state between the closed and fully open positions. 4057 * 4058 * <p>Property Config: 4059 * <ul> 4060 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 4061 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4062 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_WINDOW} 4063 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 4064 * <li>{@code Integer} property type 4065 * </ul> 4066 * 4067 * <p>Required Permission: 4068 * <ul> 4069 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_WINDOWS" to read and 4070 * write property. 4071 * </ul> 4072 */ 4073 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_WINDOWS) 4074 public static final int WINDOW_POS = 322964416; 4075 /** 4076 * Window Move. 4077 * 4078 * <p>This property is not in any particular unit but in a specified range of relative movement 4079 * speeds. 4080 * 4081 * <p>Positive values mean the window is either closing from its out of plane position (if such 4082 * a position is supported by the window), or is opening in plane. Negative values mean the 4083 * window is closing in plane, or opening in its out of plane position (if the position is 4084 * supported). Larger integers, either positive or negative, indicate a faster speed. Once the 4085 * window reaches the positional limit, the value resets to 0. When this property's value is 0, 4086 * that means there is no movement currently occurring. 4087 * 4088 * <p>See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link 4089 * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. 4090 * All integers between min and max value are supported. 4091 * 4092 * <p>Property Config: 4093 * <ul> 4094 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 4095 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4096 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_WINDOW} 4097 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 4098 * <li>{@code Integer} property type 4099 * </ul> 4100 * 4101 * <p>Required Permission: 4102 * <ul> 4103 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_WINDOWS" to read and 4104 * write property. 4105 * </ul> 4106 */ 4107 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_WINDOWS) 4108 public static final int WINDOW_MOVE = 322964417; 4109 /** 4110 * Window Child Lock. 4111 * 4112 * <p>True indicates that the window is child-locked. 4113 * 4114 * <p>Property Config: 4115 * <ul> 4116 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 4117 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4118 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_WINDOW} 4119 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 4120 * <li>{@code Boolean} property type 4121 * </ul> 4122 * 4123 * <p>Required Permission: 4124 * <ul> 4125 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_WINDOWS" to read and 4126 * write property. 4127 * </ul> 4128 */ 4129 @RequiresPermission(Car.PERMISSION_CONTROL_CAR_WINDOWS) 4130 public static final int WINDOW_LOCK = 320867268; 4131 4132 /** 4133 * Windshield wipers period (milliseconds). 4134 * 4135 * <p>Returns the instantaneous time period for 1 full cycle of the windshield wipers in {@link 4136 * android.car.VehicleUnit#MILLI_SECS}. A full cycle is defined as a wiper moving from and 4137 * returning to its rest position. The {@link 4138 * android.car.hardware.property.AreaIdConfig#getMaxValue()} specifies the longest wiper period. 4139 * The {@link android.car.hardware.property.AreaIdConfig#getMinValue()} is always 0. When an 4140 * intermittent wiper setting is selected, this property value will be set to 0 during the 4141 * "pause" phase of the intermittent wiping. 4142 * 4143 * <p>Property Config: 4144 * <ul> 4145 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4146 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_WINDOW} 4147 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 4148 * <li>{@code Integer} property type 4149 * </ul> 4150 * 4151 * <p>Required Permission: 4152 * <ul> 4153 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_WINDSHIELD_WIPERS} to read 4154 * property. 4155 * <li>Property is not writable. 4156 * </ul> 4157 * 4158 * @hide 4159 */ 4160 @SystemApi 4161 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_WINDSHIELD_WIPERS)) 4162 public static final int WINDSHIELD_WIPERS_PERIOD = 322964421; 4163 4164 /** 4165 * Windshield wipers state. 4166 * 4167 * <p>Returns the current state of the windshield wipers. The value of {@code 4168 * WINDSHIELD_WIPERS_STATE} may not match the value of {@link #WINDSHIELD_WIPERS_SWITCH}. (e.g. 4169 * {@code #WINDSHIELD_WIPERS_STATE} = {@link 4170 * android.car.hardware.property.WindshieldWipersState#ON} and {@link 4171 * #WINDSHIELD_WIPERS_SWITCH} = {@link 4172 * android.car.hardware.property.WindshieldWipersSwitch#AUTO}). 4173 * 4174 * <p>If {@code #WINDSHIELD_WIPERS_STATE} = {@link 4175 * android.car.hardware.property.WindshieldWipersState#ON} and {@link #WINDSHIELD_WIPERS_PERIOD} 4176 * is implemented, then {@link #WINDSHIELD_WIPERS_PERIOD} will reflect the time period of 1 4177 * full cycle of the wipers. 4178 * 4179 * <p>For each supported area ID, the {@link 4180 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 4181 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 4182 * from {@link android.car.hardware.property.WindshieldWipersState} are supported. 4183 * 4184 * <p>Property Config: 4185 * <ul> 4186 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4187 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_WINDOW} 4188 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 4189 * <li>{@code Integer} property type 4190 * </ul> 4191 * 4192 * <p>Required Permission: 4193 * <ul> 4194 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_WINDSHIELD_WIPERS} to read 4195 * property. 4196 * <li>Property is not writable. 4197 * </ul> 4198 * 4199 * @data_enum {@link WindshieldWipersState} 4200 * 4201 * @hide 4202 */ 4203 @SystemApi 4204 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_WINDSHIELD_WIPERS)) 4205 public static final int WINDSHIELD_WIPERS_STATE = 322964422; 4206 4207 /** 4208 * Windshield wipers switch. 4209 * 4210 * <p>Represents the position of the switch controlling the windshield wipers. The value of 4211 * {@code WINDSHIELD_WIPERS_SWITCH} may not match the value of {@link #WINDSHIELD_WIPERS_STATE} 4212 * (e.g. {@code WINDSHIELD_WIPERS_SWITCH} = {@link 4213 * android.car.hardware.property.WindshieldWipersSwitch#AUTO} and {@link 4214 * #WINDSHIELD_WIPERS_STATE} = WindshieldWipersState#ON). 4215 * 4216 * <p>For each supported area ID, the {@link 4217 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 4218 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which values 4219 * from {@link android.car.hardware.property.WindshieldWipersSwitch} are supported. 4220 * 4221 * <p>This property is defined as read_write, but OEMs have the option to implement it as read 4222 * only. 4223 * 4224 * <p>Property Config: 4225 * <ul> 4226 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 4227 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4228 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_WINDOW} 4229 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 4230 * <li>{@code Integer} property type 4231 * </ul> 4232 * 4233 * <p>Required Permissions: 4234 * <ul> 4235 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_WINDSHIELD_WIPERS} or 4236 * Signature|Privileged permission {@link Car#PERMISSION_CONTROL_WINDSHIELD_WIPERS} to read 4237 * property. 4238 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_WINDSHIELD_WIPERS} to 4239 * write property. 4240 * </ul> 4241 * 4242 * @data_enum {@link WindshieldWipersSwitch} 4243 * 4244 * @hide 4245 */ 4246 @SystemApi 4247 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_READ_WINDSHIELD_WIPERS, 4248 Car.PERMISSION_CONTROL_WINDSHIELD_WIPERS})) 4249 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_WINDSHIELD_WIPERS)) 4250 public static final int WINDSHIELD_WIPERS_SWITCH = 322964423; 4251 4252 /** 4253 * Steering wheel depth position. 4254 * 4255 * <p>This property is not in any particular unit but in a specified range of relative 4256 * positions. 4257 * 4258 * <p>{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the steering 4259 * wheel's position when closest to the driver. 4260 * <p>{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the steering 4261 * wheel's position when farthest from the driver. 4262 * 4263 * <p>All integers in between the min and max values are supported and indicate a transition 4264 * state between the closest and farthest positions. 4265 * 4266 * <p>Property Config: 4267 * <ul> 4268 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 4269 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4270 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 4271 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 4272 * <li>{@code Integer} property type 4273 * </ul> 4274 * 4275 * <p>Required Permission: 4276 * <ul> 4277 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_STEERING_WHEEL} to read 4278 * and write property. 4279 * </ul> 4280 * 4281 * @hide 4282 */ 4283 @SystemApi 4284 @RequiresPermission(Car.PERMISSION_CONTROL_STEERING_WHEEL) 4285 public static final int STEERING_WHEEL_DEPTH_POS = 289410016; 4286 /** 4287 * Steering wheel depth movement. 4288 * 4289 * <p>Returns the speed and direction, either towards or away from the driver, that the 4290 * steering wheel is moving in. This property is not in any particular unit but in a specified 4291 * range of relative movement speeds. 4292 * 4293 * <p>Positive values mean the steering wheel is moving away from the driver and negative values 4294 * mean the steering wheel is moving towards the driver. Larger integers, either positive or 4295 * negative, indicate a faster speed. Once the steering wheel reaches the positional limit, the 4296 * value resets to 0. When this property's value is 0, that means there is no movement currently 4297 * occurring. 4298 * 4299 * <p>See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link 4300 * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. 4301 * All integers between min and max value are supported. 4302 * 4303 * <p>Property Config: 4304 * <ul> 4305 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 4306 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4307 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 4308 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 4309 * <li>{@code Integer} property type 4310 * </ul> 4311 * 4312 * <p>Required Permission: 4313 * <ul> 4314 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_STEERING_WHEEL} to read 4315 * and write property. 4316 * </ul> 4317 * 4318 * @hide 4319 */ 4320 @SystemApi 4321 @RequiresPermission(Car.PERMISSION_CONTROL_STEERING_WHEEL) 4322 public static final int STEERING_WHEEL_DEPTH_MOVE = 289410017; 4323 /** 4324 * Steering wheel height position. 4325 * 4326 * <p>This property is not in any particular unit but in a specified range of relative 4327 * positions. 4328 * 4329 * <p>{@link android.car.hardware.property.AreaIdConfig#getMinValue()} indicates the steering 4330 * wheel's lowest position. 4331 * <p>{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} indicates the steering 4332 * wheel's highest position. 4333 * 4334 * <p>All integers in between the min and max values are supported and indicate a transition 4335 * state between the lowest and highest positions. 4336 * 4337 * <p>Property Config: 4338 * <ul> 4339 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 4340 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4341 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 4342 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 4343 * <li>{@code Integer} property type 4344 * </ul> 4345 * 4346 * <p>Required Permission: 4347 * <ul> 4348 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_STEERING_WHEEL} to read 4349 * and write property. 4350 * </ul> 4351 * 4352 * @hide 4353 */ 4354 @SystemApi 4355 @RequiresPermission(Car.PERMISSION_CONTROL_STEERING_WHEEL) 4356 public static final int STEERING_WHEEL_HEIGHT_POS = 289410018; 4357 /** 4358 * Steering wheel height movement. 4359 * 4360 * <p>Returns the speed and direction, either upwards or downwards, that the steering wheel is 4361 * moving in. This property is not in any particular unit but in a specified range of relative 4362 * movement speeds. 4363 * 4364 * <p>Positive values mean moving upwards and negative values mean moving downwards. Larger 4365 * integers, either positive or negative, indicate a faster speed. Once the steering wheel 4366 * reaches the positional limit, the value resets to 0. When this property's value is 0, that 4367 * means there is no movement currently occurring. 4368 * 4369 * <p>See {@link android.car.hardware.property.AreaIdConfig#getMaxValue()} and {@link 4370 * android.car.hardware.property.AreaIdConfig#getMinValue()} for the range of possible speeds. 4371 * All integers between min and max value are supported. 4372 * 4373 * <p>Property Config: 4374 * <ul> 4375 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 4376 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4377 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 4378 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 4379 * <li>{@code Integer} property type 4380 * </ul> 4381 * 4382 * <p>Required Permission: 4383 * <ul> 4384 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_STEERING_WHEEL} to read 4385 * and write property. 4386 * </ul> 4387 * 4388 * @hide 4389 */ 4390 @SystemApi 4391 @RequiresPermission(Car.PERMISSION_CONTROL_STEERING_WHEEL) 4392 public static final int STEERING_WHEEL_HEIGHT_MOVE = 289410019; 4393 /** 4394 * Steering wheel theft lock feature enabled. 4395 * 4396 * <p>Returns true if the steering wheel theft lock feature is enabled and false if it is 4397 * disabled. If enabled, the steering wheel will lock automatically to prevent theft in 4398 * certain situations. 4399 * 4400 * <p>Property Config: 4401 * <ul> 4402 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 4403 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4404 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 4405 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 4406 * <li>{@code Boolean} property type 4407 * </ul> 4408 * 4409 * <p>Required Permission: 4410 * <ul> 4411 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_STEERING_WHEEL} to read 4412 * and write property. 4413 * </ul> 4414 * 4415 * @hide 4416 */ 4417 @SystemApi 4418 @RequiresPermission(Car.PERMISSION_CONTROL_STEERING_WHEEL) 4419 public static final int STEERING_WHEEL_THEFT_LOCK_ENABLED = 287312868; 4420 /** 4421 * Steering wheel locked. 4422 * 4423 * <p>Returns true if the steering wheel is locked. If locked, the steering wheel’s position is 4424 * not changeable. 4425 * 4426 * <p>Property Config: 4427 * <ul> 4428 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 4429 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4430 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 4431 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 4432 * <li>{@code Boolean} property type 4433 * </ul> 4434 * 4435 * <p>Required Permission: 4436 * <ul> 4437 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_STEERING_WHEEL} to read 4438 * and write property. 4439 * </ul> 4440 * 4441 * @hide 4442 */ 4443 @SystemApi 4444 @RequiresPermission(Car.PERMISSION_CONTROL_STEERING_WHEEL) 4445 public static final int STEERING_WHEEL_LOCKED = 287312869; 4446 /** 4447 * Steering wheel easy access feature enabled. 4448 * 4449 * <p>Returns true if the steering wheel easy access feature is enabled and false if it is 4450 * disabled. If enabled, the driver’s steering wheel will automatically adjust to make it easier 4451 * for the driver to enter and exit the vehicle. 4452 * 4453 * <p>Property Config: 4454 * <ul> 4455 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 4456 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4457 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 4458 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 4459 * <li>{@code Boolean} property type 4460 * </ul> 4461 * 4462 * <p>Required Permission: 4463 * <ul> 4464 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_STEERING_WHEEL} to read 4465 * and write property. 4466 * </ul> 4467 * 4468 * @hide 4469 */ 4470 @SystemApi 4471 @RequiresPermission(Car.PERMISSION_CONTROL_STEERING_WHEEL) 4472 public static final int STEERING_WHEEL_EASY_ACCESS_ENABLED = 287312870; 4473 /** 4474 * Vehicle Maps Service (VMS) message. 4475 * 4476 * <p>Not exposed through {@link android.car.hardware.property.CarPropertyManager}. 4477 * 4478 * <p>This property is not supported. 4479 * 4480 * @deprecated use {@link android.car.vms.VmsClientManager} instead. 4481 */ 4482 @Deprecated 4483 @RequiresPermission(anyOf = {Car.PERMISSION_VMS_PUBLISHER, Car.PERMISSION_VMS_SUBSCRIBER}) 4484 public static final int VEHICLE_MAP_SERVICE = 299895808; 4485 /** 4486 * Characterization of inputs used for computing location. 4487 * 4488 * <p>This property indicates what (if any) data and sensor inputs are considered by the system 4489 * when computing the vehicle's location that is shared with Android through {@link 4490 * android.location.LocationManager#GPS_PROVIDER}. 4491 * 4492 * <p>The value returned is a collection of bit flags. The bit flags are defined in {@link 4493 * LocationCharacterization}. The value will also include exactly 4494 * one of {@link LocationCharacterization#DEAD_RECKONED} or {@link 4495 * LocationCharacterization#RAW_GNSS_ONLY} among its collection of 4496 * bit flags. 4497 * 4498 * <p>When this property is not supported, it is assumed that no additional sensor inputs are 4499 * fused into the GNSS updates provided through {@link 4500 * android.location.LocationManager#GPS_PROVIDER}. That is unless otherwise specified through 4501 * other {@link android.location.LocationManager} APIs. 4502 * 4503 * <p>Property Config: 4504 * <ul> 4505 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4506 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 4507 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 4508 * <li>{@code Integer} property type 4509 * </ul> 4510 * 4511 * <p>Required Permission: 4512 * <ul> 4513 * <li>Dangerous permission {@link android.Manifest.permission#ACCESS_FINE_LOCATION} to read 4514 * property. 4515 * <li>Property is not writable. 4516 * </ul> 4517 * 4518 * @data_flag {@link LocationCharacterization} 4519 */ 4520 @RequiresPermission(ACCESS_FINE_LOCATION) 4521 public static final int LOCATION_CHARACTERIZATION = 289410064; 4522 4523 /** 4524 * Static data for the position of each ultrasonic sensor installed on the vehicle. 4525 * 4526 * <p>Each individual sensor is identified by its unique {@link AreaIdConfig#getAreaId()} and 4527 * returns the sensor's position formatated as [x, y, z] where: 4528 * 4529 * <ul> 4530 * <li>x is the position of the sensor along the x-axis relative to the origin of the Android 4531 * Automotive sensor coordinate frame in millimeters. 4532 * <li>y is the position of the sensor along the y-axis relative to the origin of the Android 4533 * Automotive sensor coordinate frame in millimeters. 4534 * <li>z is the position of the sensor along the z-axis relative to the origin of the Android 4535 * Automotive sensor coordinate frame in millimeters. 4536 * </ul> 4537 * 4538 * <p>Property Config: 4539 * <ul> 4540 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4541 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_VENDOR} 4542 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 4543 * <li>{@code Integer[]} property type 4544 * </ul> 4545 * 4546 * <p>Required Permission: 4547 * <ul> 4548 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ULTRASONICS_SENSOR_DATA} to 4549 * read property. 4550 * <li>Property is not writable. 4551 * </ul> 4552 * 4553 * @hide 4554 */ 4555 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 4556 @SystemApi 4557 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_ULTRASONICS_SENSOR_DATA)) 4558 public static final int ULTRASONICS_SENSOR_POSITION = 406916128; 4559 4560 /** 4561 * Static data for the orientation of each ultrasonic sensor installed on the vehicle. 4562 * 4563 * <p>Each individual sensor is identified by its {@link AreaIdConfig#getAreaId()} and returns 4564 * the sensor's orientation formatted as [qw, qx, qy, qz] where: 4565 * 4566 * <ul> 4567 * <li>qw is the quaternion coefficient w within the quaterinion (w + xi + yj + zk) describing 4568 * the rotation of the sensor relative to the Android Automotive sensor coordinate frame. 4569 * <li>qx is the quaternion coefficient x within the quaterinion (w + xi + yj + zk) describing 4570 * the rotation of the sensor relative to the Android Automotive sensor coordinate frame. 4571 * <li>qy is the quaternion coefficient y within the quaterinion (w + xi + yj + zk) describing 4572 * the rotation of the sensor relative to the Android Automotive sensor coordinate frame. 4573 * <li>qz is the quaternion coefficient z within the quaterinion (w + xi + yj + zk) describing 4574 * the rotation of the sensor relative to the Android Automotive sensor coordinate frame. 4575 * </ul> 4576 * 4577 * <p>This assumes each sensor uses the same axes conventions as Android Automotive. 4578 * 4579 * <p>Property Config: 4580 * <ul> 4581 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4582 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_VENDOR} 4583 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 4584 * <li>{@code Float[]} property type 4585 * </ul> 4586 * 4587 * <p>Required Permission: 4588 * <ul> 4589 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ULTRASONICS_SENSOR_DATA} to 4590 * read property. 4591 * <li>Property is not writable. 4592 * </ul> 4593 * 4594 * @hide 4595 */ 4596 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 4597 @SystemApi 4598 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_ULTRASONICS_SENSOR_DATA)) 4599 public static final int ULTRASONICS_SENSOR_ORIENTATION = 409013281; 4600 4601 /** 4602 * Static data for the field of view of each ultrasonic sensor in degrees. 4603 * 4604 * <p>Each individual sensor is identified by its {@link AreaIdConfig#getAreaId()} and returns 4605 * the sensor's field of view formatted as [horizontal, vertical] where: 4606 * 4607 * <ul> 4608 * <li>horizontal is the horizontal field of view for the specified ultrasonic sensor in 4609 * degrees. 4610 * <li>vertical is the vertical field of view for the associated specified ultrasonic sensor in 4611 * degrees. 4612 * </ul> 4613 * 4614 * <p>This assumes each sensor uses the same axes conventions as Android Automotive. 4615 * 4616 * <p>Property Config: 4617 * <ul> 4618 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4619 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_VENDOR} 4620 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 4621 * <li>{@code Integer[]} property type 4622 * </ul> 4623 * 4624 * <p>Required Permission: 4625 * <ul> 4626 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ULTRASONICS_SENSOR_DATA} to 4627 * read property. 4628 * <li>Property is not writable. 4629 * </ul> 4630 * 4631 * @hide 4632 */ 4633 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 4634 @SystemApi 4635 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_ULTRASONICS_SENSOR_DATA)) 4636 public static final int ULTRASONICS_SENSOR_FIELD_OF_VIEW = 406916130; 4637 4638 /** 4639 * Static data for the detection range of each ultrasonic sensor in millimeters. 4640 * 4641 * <p>Each individual sensor is identified by its {@link AreaIdConfig#getAreaId()} and returns 4642 * the sensor's detection range formatted as [minimum, maximum] where: 4643 * 4644 * <ul> 4645 * <li>minimum is the minimum range detectable by the ultrasonic sensor in millimeters. 4646 * <li>maximum is the maximum range detectable by the ultrasonic sensor in millimeters. 4647 * </ul> 4648 * 4649 * <p>Property Config: 4650 * <ul> 4651 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4652 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_VENDOR} 4653 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 4654 * <li>{@code Integer[]} property type 4655 * </ul> 4656 * 4657 * <p>Required Permission: 4658 * <ul> 4659 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ULTRASONICS_SENSOR_DATA} to 4660 * read property. 4661 * <li>Property is not writable. 4662 * </ul> 4663 * 4664 * @hide 4665 */ 4666 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 4667 @SystemApi 4668 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_ULTRASONICS_SENSOR_DATA)) 4669 public static final int ULTRASONICS_SENSOR_DETECTION_RANGE = 406916131; 4670 4671 /** 4672 * Static data for the supported ranges of each ultrasonic sensor in millimeters. 4673 * 4674 * <p>For ultrasonic sensors that only support readings within a specific range. For example, if 4675 * an ultrasonic sensor detects an object at 700mm, but can only report that an object has been 4676 * detected between 500mm and 1000mm. 4677 * 4678 * <p>Each individual sensor is identified by its {@link AreaIdConfig#getAreaId()} and returns 4679 * the sensor's supported ranges formatted as [range_min_1, range_max_1, range_min_2, 4680 * range_max_2, ...] where: 4681 * 4682 * <ul> 4683 * <li>range_min_1 is the minimum of one supported range by the specified sensor in 4684 * millimeters, inclusive. 4685 * <li>range_max_1 is the maximum of one supported range by the specified sensor in 4686 * millimeters, inclusive. 4687 * <li> range_min_2 is the minimum of another supported range by the specified sensor in 4688 * millimeters, inclusive. 4689 * <li> range_max_2 is the maximum of another supported range by the specified sensor in 4690 * millimeters, inclusive. 4691 * </ul> 4692 * 4693 * <p>For example, if an ultrasonic sensor supports the ranges 150mm to 499mm, 500mm to 999mm, 4694 * and 1000mm to 1500mm, then the property should be set to: 4695 * <ul> 4696 * <li>value[0] = 150 4697 * <li>value[1] = 499 4698 * <li>value[2] = 500 4699 * <li>value[3] = 999 4700 * <li>value[4] = 1000 4701 * <li>value[5] = 1500 4702 * </ul> 4703 * 4704 * <p>If this property is not defined, all the values within the 4705 * {@link #ULTRASONICS_SENSOR_DETECTION_RANGE} for the specified sensor are assumed to be 4706 * supported. 4707 * 4708 * <p>Property Config: 4709 * <ul> 4710 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4711 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_VENDOR} 4712 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 4713 * <li>{@code Integer[]} property type 4714 * </ul> 4715 * 4716 * <p>Required Permission: 4717 * <ul> 4718 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ULTRASONICS_SENSOR_DATA} to 4719 * read property. 4720 * <li>Property is not writable. 4721 * </ul> 4722 * 4723 * @hide 4724 */ 4725 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 4726 @SystemApi 4727 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_ULTRASONICS_SENSOR_DATA)) 4728 public static final int ULTRASONICS_SENSOR_SUPPORTED_RANGES = 406916132; 4729 4730 /** 4731 * The distance reading of the nearest detected object per sensor in millimeters. 4732 * 4733 * <p>Each individual sensor is identified by its {@link AreaIdConfig#getAreaId()} and returns 4734 * the sensor's measured distance formatted as [distance, distance_error] where: 4735 * 4736 * <ul> 4737 * <li>distance is the measured distance of the nearest object in millimeters. If only a range 4738 * is supported, this value must be set to the minimum supported distance in the detected range 4739 * as specified in {@link #ULTRASONICS_SENSOR_SUPPORTED_RANGES}. 4740 * <li>distance_error is the error of the measured distance value in millimeters. 4741 * </ul> 4742 * 4743 * <p>If no object is detected, an empty vector will be returned. If distance_error is not 4744 * available then an array of only the measured distance will be returned. 4745 * 4746 * <p>Property Config: 4747 * <ul> 4748 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4749 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_VENDOR} 4750 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 4751 * <li>{@code Integer[]} property type 4752 * </ul> 4753 * 4754 * <p>Required Permission: 4755 * <ul> 4756 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ULTRASONICS_SENSOR_DATA} to 4757 * read property. 4758 * <li>Property is not writable. 4759 * </ul> 4760 * 4761 * @hide 4762 */ 4763 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 4764 @SystemApi 4765 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_ULTRASONICS_SENSOR_DATA)) 4766 public static final int ULTRASONICS_SENSOR_MEASURED_DISTANCE = 406916133; 4767 4768 /** 4769 * OBD2 Live Sensor Data. 4770 * 4771 * <p>Not exposed through {@link android.car.hardware.property.CarPropertyManager}. 4772 * 4773 * <p>This property is not supported. 4774 * 4775 * @deprecated use {@link android.car.diagnostic.CarDiagnosticManager} instead. 4776 */ 4777 @Deprecated 4778 @RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_READ_ALL) 4779 public static final int OBD2_LIVE_FRAME = 299896064; 4780 /** 4781 * OBD2 Freeze Frame Sensor Data. 4782 * 4783 * <p>Not exposed through {@link android.car.hardware.property.CarPropertyManager}. 4784 * 4785 * <p>This property is not supported. 4786 * 4787 * @deprecated use {@link android.car.diagnostic.CarDiagnosticManager} instead. 4788 */ 4789 @Deprecated 4790 @RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_READ_ALL) 4791 public static final int OBD2_FREEZE_FRAME = 299896065; 4792 /** 4793 * OBD2 Freeze Frame Information. 4794 * 4795 * <p>Not exposed through {@link android.car.hardware.property.CarPropertyManager}. 4796 * 4797 * <p>This property is not supported. 4798 * 4799 * @deprecated use {@link android.car.diagnostic.CarDiagnosticManager} instead. 4800 */ 4801 @Deprecated 4802 @RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_READ_ALL) 4803 public static final int OBD2_FREEZE_FRAME_INFO = 299896066; 4804 /** 4805 * OBD2 Freeze Frame Clear. 4806 * 4807 * <p>Not exposed through {@link android.car.hardware.property.CarPropertyManager}. 4808 * 4809 * <p>This property is not supported. 4810 * 4811 * @deprecated use {@link android.car.diagnostic.CarDiagnosticManager} instead. 4812 */ 4813 @Deprecated 4814 @RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_CLEAR) 4815 public static final int OBD2_FREEZE_FRAME_CLEAR = 299896067; 4816 /** 4817 * Headlights State. 4818 * 4819 * <p>Property Config: 4820 * <ul> 4821 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4822 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 4823 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 4824 * <li>{@code Integer} property type 4825 * </ul> 4826 * 4827 * <p>Required Permission: 4828 * <ul> 4829 * <li>Signature|Privileged permission "android.car.permission.CAR_EXTERIOR_LIGHTS" to read 4830 * property. 4831 * <li>Property is not writable. 4832 * </ul> 4833 * 4834 * @data_enum {@link VehicleLightState} 4835 */ 4836 @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS) 4837 public static final int HEADLIGHTS_STATE = 289410560; 4838 /** 4839 * High beam lights state. 4840 * 4841 * <p>Property Config: 4842 * <ul> 4843 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4844 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 4845 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 4846 * <li>{@code Integer} property type 4847 * </ul> 4848 * 4849 * <p>Required Permission: 4850 * <ul> 4851 * <li>Signature|Privileged permission "android.car.permission.CAR_EXTERIOR_LIGHTS" to read 4852 * property. 4853 * <li>Property is not writable. 4854 * </ul> 4855 * 4856 * @data_enum {@link VehicleLightState} 4857 */ 4858 @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS) 4859 public static final int HIGH_BEAM_LIGHTS_STATE = 289410561; 4860 /** 4861 * Fog light state. 4862 * 4863 * <p>If the car has both front and rear fog lights: 4864 * <ul> 4865 * <li>If front and rear fog lights can only be controlled together: {@code FOG_LIGHTS_STATE} 4866 * provides the state of fog lights. 4867 * <li>If front and rear fog lights can only be controlled independently: {@link 4868 * #FRONT_FOG_LIGHTS_STATE} and {@link #REAR_FOG_LIGHTS_STATE} provide the state of front, rear 4869 * fog lights respectively. 4870 * </ul> 4871 * 4872 * <p>If the car has only front fog lights: 4873 * <ul> 4874 * <li>Only one of {@code FOG_LIGHTS_STATE} or {@link #FRONT_FOG_LIGHTS_STATE} will be 4875 * implemented in the car. The implemented property provides the state of the front fog lights. 4876 * </ul> 4877 * 4878 * <p>If the car has only rear fog lights: 4879 * <ul> 4880 * <li>Only one of {@code FOG_LIGHTS_STATE} or {@link #REAR_FOG_LIGHTS_STATE} will be 4881 * implemented in the car. The implemented property provides the state of the rear fog lights. 4882 * </ul> 4883 * 4884 * <p>Property Config: 4885 * <ul> 4886 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4887 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 4888 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 4889 * <li>{@code Integer} property type 4890 * </ul> 4891 * 4892 * <p>Required Permission: 4893 * <ul> 4894 * <li>Signature|Privileged permission "android.car.permission.CAR_EXTERIOR_LIGHTS" to read 4895 * property. 4896 * <li>Property is not writable. 4897 * </ul> 4898 * 4899 * @data_enum {@link VehicleLightState} 4900 */ 4901 @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS) 4902 public static final int FOG_LIGHTS_STATE = 289410562; 4903 /** 4904 * Hazard light status. 4905 * 4906 * <p>Property Config: 4907 * <ul> 4908 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4909 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 4910 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 4911 * <li>{@code Integer} property type 4912 * </ul> 4913 * 4914 * <p>Required Permission: 4915 * <ul> 4916 * <li>Signature|Privileged permission "android.car.permission.CAR_EXTERIOR_LIGHTS" to read 4917 * property. 4918 * <li>Property is not writable. 4919 * </ul> 4920 * 4921 * @data_enum {@link VehicleLightState} 4922 */ 4923 @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS) 4924 public static final int HAZARD_LIGHTS_STATE = 289410563; 4925 /** 4926 * Headlight switch. 4927 * 4928 * <p>Property Config: 4929 * <ul> 4930 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 4931 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4932 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 4933 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 4934 * <li>{@code Integer} property type 4935 * </ul> 4936 * 4937 * <p>Required Permission: 4938 * <ul> 4939 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_EXTERIOR_LIGHTS" to 4940 * read and write property. 4941 * </ul> 4942 * 4943 * @data_enum {@link VehicleLightSwitch} 4944 */ 4945 @RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS) 4946 public static final int HEADLIGHTS_SWITCH = 289410576; 4947 /** 4948 * High beam light switch. 4949 * 4950 * <p>Property Config: 4951 * <ul> 4952 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 4953 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4954 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 4955 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 4956 * <li>{@code Integer} property type 4957 * </ul> 4958 * 4959 * <p>Required Permission: 4960 * <ul> 4961 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_EXTERIOR_LIGHTS" to 4962 * read and write property. 4963 * </ul> 4964 * 4965 * @data_enum {@link VehicleLightSwitch} 4966 */ 4967 @RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS) 4968 public static final int HIGH_BEAM_LIGHTS_SWITCH = 289410577; 4969 /** 4970 * Fog light switch. 4971 * 4972 * <p>If the car has both front and rear fog lights: 4973 * <ul> 4974 * <li>If front and rear fog lights can only be controlled together: {@code FOG_LIGHTS_SWITCH} 4975 * should be used to change the fog lights state. 4976 * <li>If front and rear fog lights can only be controlled independently: {@link 4977 * #FRONT_FOG_LIGHTS_SWITCH} and {@link #REAR_FOG_LIGHTS_SWITCH} should be used to change the 4978 * front and rear fog lights state respectively. 4979 * </ul> 4980 * 4981 * <p>If the car has only front fog lights: 4982 * <ul> 4983 * <li>Only one of {@code FOG_LIGHTS_SWITCH} or {@link #FRONT_FOG_LIGHTS_SWITCH} will be 4984 * implemented in the car. The implemented property should be used to change the front fog 4985 * lights state. 4986 * </ul> 4987 * 4988 * <p>If the car has only rear fog lights: 4989 * <ul> 4990 * <li>Only one of {@code FOG_LIGHTS_SWITCH} or {@link #REAR_FOG_LIGHTS_SWITCH} will be 4991 * implemented in the car. The implemented property should be used to change the rear fog 4992 * lights state. 4993 * </ul> 4994 * 4995 * <p>Property Config: 4996 * <ul> 4997 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 4998 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 4999 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5000 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5001 * <li>{@code Integer} property type 5002 * </ul> 5003 * 5004 * <p>Required Permission: 5005 * <ul> 5006 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_EXTERIOR_LIGHTS" to 5007 * read and write property. 5008 * </ul> 5009 * 5010 * @data_enum {@link VehicleLightSwitch} 5011 */ 5012 @RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS) 5013 public static final int FOG_LIGHTS_SWITCH = 289410578; 5014 /** 5015 * Hazard light switch. 5016 * 5017 * <p>Property Config: 5018 * <ul> 5019 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 5020 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5021 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5022 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5023 * <li>{@code Integer} property type 5024 * </ul> 5025 * 5026 * <p>Required Permission: 5027 * <ul> 5028 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_EXTERIOR_LIGHTS" to 5029 * read and write property. 5030 * </ul> 5031 * 5032 * @data_enum {@link VehicleLightSwitch} 5033 */ 5034 @RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS) 5035 public static final int HAZARD_LIGHTS_SWITCH = 289410579; 5036 /** 5037 * Cabin lights. 5038 * 5039 * <p>Property Config: 5040 * <ul> 5041 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5042 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5043 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5044 * <li>{@code Integer} property type 5045 * </ul> 5046 * 5047 * <p>Required Permission: 5048 * <ul> 5049 * <li>Signature|Privileged permission "android.car.permission.READ_CAR_INTERIOR_LIGHTS" to 5050 * read property. 5051 * <li>Property is not writable. 5052 * </ul> 5053 * 5054 * @data_enum {@link VehicleLightState} 5055 */ 5056 @RequiresPermission(Car.PERMISSION_READ_INTERIOR_LIGHTS) 5057 public static final int CABIN_LIGHTS_STATE = 289410817; 5058 /** 5059 * Cabin lights switch. 5060 * 5061 * <p>Property Config: 5062 * <ul> 5063 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 5064 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5065 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5066 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5067 * <li>{@code Integer} property type 5068 * </ul> 5069 * 5070 * <p>Required Permission: 5071 * <ul> 5072 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_INTERIOR_LIGHTS" to 5073 * read and write property. 5074 * </ul> 5075 * 5076 * @data_enum {@link VehicleLightSwitch} 5077 */ 5078 @RequiresPermission(Car.PERMISSION_CONTROL_INTERIOR_LIGHTS) 5079 public static final int CABIN_LIGHTS_SWITCH = 289410818; 5080 /** 5081 * Reading lights. 5082 * 5083 * <p>Property Config: 5084 * <ul> 5085 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5086 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 5087 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5088 * <li>{@code Integer} property type 5089 * </ul> 5090 * 5091 * <p>Required Permission: 5092 * <ul> 5093 * <li>Signature|Privileged permission "android.car.permission.READ_CAR_INTERIOR_LIGHTS" to 5094 * read property. 5095 * <li>Property is not writable. 5096 * </ul> 5097 * 5098 * @data_enum {@link VehicleLightState} 5099 */ 5100 @RequiresPermission(Car.PERMISSION_READ_INTERIOR_LIGHTS) 5101 public static final int READING_LIGHTS_STATE = 356519683; 5102 /** 5103 * Reading lights switch. 5104 * 5105 * <p>Property Config: 5106 * <ul> 5107 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 5108 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5109 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_SEAT} 5110 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5111 * <li>{@code Integer} property type 5112 * </ul> 5113 * 5114 * <p>Required Permission: 5115 * <ul> 5116 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_INTERIOR_LIGHTS" to 5117 * read and write property. 5118 * </ul> 5119 * 5120 * @data_enum {@link VehicleLightSwitch} 5121 */ 5122 @RequiresPermission(Car.PERMISSION_CONTROL_INTERIOR_LIGHTS) 5123 public static final int READING_LIGHTS_SWITCH = 356519684; 5124 5125 /** 5126 * Steering wheel lights state. 5127 * 5128 * <p>Returns the current state of the steering wheel lights. This is different from {@link 5129 * #STEERING_WHEEL_LIGHTS_SWITCH} which represents the position of the switch controlling 5130 * the lights. Therefore, {@code STEERING_WHEEL_LIGHTS_STATE} may not match the value of 5131 * {@link #STEERING_WHEEL_LIGHTS_SWITCH} (e.g. {@link #STEERING_WHEEL_LIGHTS_SWITCH}={@code 5132 * VehicleLightSwitch#STATE_AUTOMATIC} and {@code STEERING_WHEEL_LIGHTS_STATE}={@code 5133 * VehicleLightState#STATE_ON}). 5134 * 5135 * <p>This property will only be implemented if {@code STEERING_WHEEL_LIGHTS_STATE}'s value may 5136 * be different from that of {@link #CABIN_LIGHTS_STATE}. 5137 * 5138 * <p>For the global area ID (0), the {@link 5139 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} obtained from {@link 5140 * android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which enum values from 5141 * {@code VehicleLightState} are supported. 5142 * 5143 * <p>Property Config: 5144 * <ul> 5145 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5146 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5147 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5148 * <li>{@code Integer} property type 5149 * </ul> 5150 * 5151 * <p>Required Permission: 5152 * <ul> 5153 * <li>Signature|Privileged permission "android.car.permission.READ_CAR_INTERIOR_LIGHTS" to 5154 * read property. 5155 * <li>Property is not writable. 5156 * </ul> 5157 * 5158 * @data_enum {@link VehicleLightState} 5159 */ 5160 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_INTERIOR_LIGHTS)) 5161 public static final int STEERING_WHEEL_LIGHTS_STATE = 289410828; 5162 5163 /** 5164 * Steering wheel lights switch. 5165 * 5166 * <p>Returns the position of the switch controlling the steering wheel lights. This is 5167 * different from {@link #STEERING_WHEEL_LIGHTS_STATE} which represents the current state of the 5168 * steering wheel lights. Therefore, {@code STEERING_WHEEL_LIGHTS_SWITCH} may not match the 5169 * value of {@link #STEERING_WHEEL_LIGHTS_STATE} (e.g. {@code STEERING_WHEEL_LIGHTS_SWITCH}= 5170 * {@code VehicleLightSwitch#STATE_AUTOMATIC} and {@link #STEERING_WHEEL_LIGHTS_STATE}={@code 5171 * VehicleLightState#STATE_ON}). 5172 * 5173 * <p>This property will only be implemented if {@code STEERING_WHEEL_LIGHTS_SWITCH}'s value may 5174 * be different from that of {@link #CABIN_LIGHTS_SWITCH}. 5175 * 5176 * <p>For the global area ID (0), the {@link 5177 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} obtained from {@link 5178 * android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which enum values from 5179 * {@code VehicleLightSwitch} are supported. 5180 * 5181 * <p>Property Config: 5182 * <ul> 5183 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 5184 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5185 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5186 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5187 * <li>{@code Integer} property type 5188 * </ul> 5189 * 5190 * <p>Required Permission: 5191 * <ul> 5192 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_INTERIOR_LIGHTS" to 5193 * read and write property. 5194 * </ul> 5195 * 5196 * @data_enum {@link VehicleLightSwitch} 5197 */ 5198 @RequiresPermission(Car.PERMISSION_CONTROL_INTERIOR_LIGHTS) 5199 public static final int STEERING_WHEEL_LIGHTS_SWITCH = 289410829; 5200 5201 /** 5202 * Property to get the initial settings for multi-user management (such as initial user). 5203 * 5204 * <p>Doesn't require permission because it's not exposed through 5205 * {@link android.car.hardware.property.CarPropertyManager}. 5206 * 5207 * <p>Property Config: 5208 * <ul> 5209 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} 5210 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5211 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5212 * <li>{@code Object[]} property type 5213 * </ul> 5214 * 5215 * @hide 5216 */ 5217 public static final int INITIAL_USER_INFO = 299896583; 5218 5219 /** 5220 * Property to switch user for multi-user management. 5221 * 5222 * <p>Doesn't require permission because it's not exposed through 5223 * {@link android.car.hardware.property.CarPropertyManager}. 5224 * 5225 * <p>Property Config: 5226 * <ul> 5227 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} 5228 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5229 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5230 * <li>{@code Object[]} property type 5231 * </ul> 5232 * 5233 * @hide 5234 */ 5235 public static final int SWITCH_USER = 299896584; 5236 5237 /** 5238 * Property to create a new user for multi-user management. 5239 * 5240 * <p>Doesn't require permission because it's not exposed through 5241 * {@link android.car.hardware.property.CarPropertyManager}. 5242 * 5243 * <p>Property Config: 5244 * <ul> 5245 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} 5246 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5247 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5248 * <li>{@code Object[]} property type 5249 * </ul> 5250 * 5251 * @hide 5252 */ 5253 public static final int CREATE_USER = 299896585; 5254 5255 /** 5256 * Property to remove a new user for multi-user management. 5257 * 5258 * <p>Doesn't require permission because it's not exposed through 5259 * {@link android.car.hardware.property.CarPropertyManager}. 5260 * 5261 * <p>Property Config: 5262 * <ul> 5263 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_WRITE} 5264 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5265 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 5266 * <li>{@code Object[]} property type 5267 * </ul> 5268 * 5269 * @hide 5270 */ 5271 public static final int REMOVE_USER = 299896586; 5272 5273 /** 5274 * Property to get / set the user authentication types associated with an Android user. 5275 * 5276 * <p>Doesn't require permission because it's not exposed through 5277 * {@link android.car.hardware.property.CarPropertyManager}. 5278 * 5279 * <p>Property Config: 5280 * <ul> 5281 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} 5282 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5283 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5284 * <li>{@code Object[]} property type 5285 * </ul> 5286 * 5287 * @hide 5288 */ 5289 public static final int USER_IDENTIFICATION_ASSOCIATION = 299896587; 5290 5291 /** 5292 * Property for VHAL to apply power policy. 5293 * 5294 * <p>Doesn't require permission because it's not exposed through 5295 * {@link android.car.hardware.property.CarPropertyManager}. 5296 * 5297 * <p>Property Config: 5298 * <ul> 5299 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5300 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5301 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5302 * <li>{@code String} property type 5303 * </ul> 5304 * 5305 * @hide 5306 */ 5307 public static final int POWER_POLICY_REQ = 286265121; 5308 5309 /** 5310 * Property for VHAL to set the default power policies per power status transition. 5311 * 5312 * <p>Doesn't require permission because it's not exposed through 5313 * {@link android.car.hardware.property.CarPropertyManager}. 5314 * 5315 * <p>Property Config: 5316 * <ul> 5317 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5318 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5319 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5320 * <li>{@code String} property type 5321 * </ul> 5322 * 5323 * @hide 5324 */ 5325 public static final int POWER_POLICY_GROUP_REQ = 286265122; 5326 5327 /** 5328 * Property to report a new current power policy to VHAL. 5329 * 5330 * <p>Doesn't require permission because it's not exposed through 5331 * {@link android.car.hardware.property.CarPropertyManager}. 5332 * 5333 * <p>Property Config: 5334 * <ul> 5335 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} 5336 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5337 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5338 * <li>{@code String} property type 5339 * </ul> 5340 * 5341 * @hide 5342 */ 5343 public static final int CURRENT_POWER_POLICY = 286265123; 5344 5345 /** 5346 * Property to report that car watchdog is alive. 5347 * 5348 * <p>Doesn't require permission because it's not exposed through 5349 * {@link android.car.hardware.property.CarPropertyManager}. 5350 * 5351 * <p>Property Config: 5352 * <ul> 5353 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_WRITE} 5354 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5355 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5356 * <li>{@code Long} property type 5357 * </ul> 5358 * 5359 * @hide 5360 */ 5361 public static final int WATCHDOG_ALIVE = 290459441; 5362 5363 /** 5364 * Property to report a process terminated by car watchdog. 5365 * 5366 * <p>Doesn't require permission because it's not exposed through 5367 * {@link android.car.hardware.property.CarPropertyManager}. 5368 * 5369 * <p>Property Config: 5370 * <ul> 5371 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_WRITE} 5372 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5373 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5374 * <li>{@code Object[]} property type 5375 * </ul> 5376 * 5377 * @hide 5378 */ 5379 public static final int WATCHDOG_TERMINATED_PROCESS = 299896626; 5380 5381 /** 5382 * Property to signal a heartbeat from VHAL. 5383 * 5384 * <p>Doesn't require permission because it's not exposed through 5385 * {@link android.car.hardware.property.CarPropertyManager}. 5386 * 5387 * <p>Property Config: 5388 * <ul> 5389 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5390 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5391 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5392 * <li>{@code Long} property type 5393 * </ul> 5394 * 5395 * @hide 5396 */ 5397 public static final int VHAL_HEARTBEAT = 290459443; 5398 5399 /** 5400 * Property to start the ClusterUI in cluster display. 5401 * 5402 * <p>Doesn't require permission because it's not exposed through 5403 * {@link android.car.hardware.property.CarPropertyManager}. 5404 * 5405 * <p>Property Config: 5406 * <ul> 5407 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5408 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5409 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5410 * <li>{@code Integer} property type 5411 * </ul> 5412 * 5413 * @hide 5414 */ 5415 public static final int CLUSTER_SWITCH_UI = 289410868; 5416 5417 /** 5418 * Property to change the state of the cluster display. 5419 * 5420 * <p>Doesn't require permission because it's not exposed through 5421 * {@link android.car.hardware.property.CarPropertyManager}. 5422 * 5423 * <p>Property Config: 5424 * <ul> 5425 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5426 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5427 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5428 * <li>{@code Integer[]} property type 5429 * </ul> 5430 * 5431 * @hide 5432 */ 5433 public static final int CLUSTER_DISPLAY_STATE = 289476405; 5434 5435 /** 5436 * Property to reports the current display and ClusterUI statue. 5437 * 5438 * <p>Doesn't require permission because it's not exposed through 5439 * {@link android.car.hardware.property.CarPropertyManager}. 5440 * 5441 * <p>Property Config: 5442 * <ul> 5443 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_WRITE} 5444 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5445 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5446 * <li>{@code Object[]} property type 5447 * </ul> 5448 * 5449 * @hide 5450 */ 5451 public static final int CLUSTER_REPORT_STATE = 299896630; 5452 5453 /** 5454 * Property to request to change the cluster display state to show some ClusterUI. 5455 * 5456 * <p>Doesn't require permission because it's not exposed through 5457 * {@link android.car.hardware.property.CarPropertyManager}. 5458 * 5459 * <p>Property Config: 5460 * <ul> 5461 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_WRITE} 5462 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5463 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5464 * <li>{@code Integer} property type 5465 * </ul> 5466 * 5467 * @hide 5468 */ 5469 public static final int CLUSTER_REQUEST_DISPLAY = 289410871; 5470 5471 /** 5472 * Property to inform the current navigation state. 5473 * 5474 * <p>Doesn't require permission because it's not exposed through 5475 * {@link android.car.hardware.property.CarPropertyManager}. 5476 * 5477 * <p>Property Config: 5478 * <ul> 5479 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_WRITE} 5480 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5481 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5482 * <li>{@code bytes[]} property type 5483 * </ul> 5484 * 5485 * @hide 5486 */ 5487 public static final int CLUSTER_NAVIGATION_STATE = 292556600; 5488 5489 /** 5490 * Property to send the heartbeat signal to ClusterOS. 5491 * 5492 * <p>Doesn't require permission because it's not exposed through 5493 * {@link android.car.hardware.property.CarPropertyManager}. 5494 * 5495 * <p>Property Config: 5496 * <ul> 5497 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_WRITE} 5498 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5499 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5500 * <li>{@code Object[]} property type 5501 * </ul> 5502 * 5503 * @hide 5504 */ 5505 public static final int CLUSTER_HEARTBEAT = 299896651; 5506 5507 /** 5508 * Current date and time, encoded as Unix time. 5509 * 5510 * <p>This value denotes the number of milliseconds that have elapsed since 1/1/1970 UTC. 5511 * 5512 * <p>Property Config: 5513 * <ul> 5514 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_WRITE} 5515 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5516 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5517 * <li>{@code Long} property type 5518 * </ul> 5519 * 5520 * <p>Required Permission: 5521 * <ul> 5522 * <li>Property is not readable. 5523 * <li>Signature|Privileged permission "android.car.permission.CAR_EPOCH_TIME" to write 5524 * property. 5525 * </ul> 5526 */ 5527 @RequiresPermission(Car.PERMISSION_CAR_EPOCH_TIME) 5528 public static final int EPOCH_TIME = 290457094; 5529 5530 /** 5531 * Electronic Toll Collection card type. 5532 * 5533 * <p>This property indicates the type of ETC(Electronic Toll Collection) card in the vehicle. 5534 * If the head unit is aware of an ETC card attached to the vehicle, this property should return 5535 * the type of card attached; otherwise, this property should be UNAVAILABLE. The property value 5536 * should be one of {@link VehicleElectronicTollCollectionCardType}. 5537 * 5538 * <p>Property Config: 5539 * <ul> 5540 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5541 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5542 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5543 * <li>{@code Integer} property type 5544 * </ul> 5545 * 5546 * <p>Required Permission: 5547 * <ul> 5548 * <li>Normal permission {@link Car#PERMISSION_CAR_INFO} to read property. 5549 * <li>Property is not writable. 5550 * </ul> 5551 * 5552 * @data_enum {@link VehicleElectronicTollCollectionCardType} 5553 */ 5554 @RequiresPermission(Car.PERMISSION_CAR_INFO) 5555 public static final int ELECTRONIC_TOLL_COLLECTION_CARD_TYPE = 289410873; 5556 5557 /** 5558 * Electronic Toll Collection card status. 5559 * 5560 * <p>This property indicates the status of ETC(Electronic Toll Collection) card in the vehicle. 5561 * If the head unit is aware of an ETC card attached to the vehicle, ETC_CARD_STATUS gives that 5562 * status of the card; otherwise, this property should be UNAVAILABLE. The property value should 5563 * be one of {@link VehicleElectronicTollCollectionCardStatus}. 5564 * 5565 * <p>Property Config: 5566 * <ul> 5567 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5568 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5569 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5570 * <li>{@code Integer} property type 5571 * </ul> 5572 * 5573 * <p>Required Permission: 5574 * <ul> 5575 * <li>Normal permission {@link Car#PERMISSION_CAR_INFO} to read property. 5576 * <li>Property is not writable. 5577 * </ul> 5578 * 5579 * @data_enum {@link VehicleElectronicTollCollectionCardStatus} 5580 */ 5581 @RequiresPermission(Car.PERMISSION_CAR_INFO) 5582 public static final int ELECTRONIC_TOLL_COLLECTION_CARD_STATUS = 289410874; 5583 5584 /** 5585 * Front fog lights state. 5586 * 5587 * <p>Please refer to the documentation on {@link #FOG_LIGHTS_STATE} for more information. 5588 * 5589 * <p>Property Config: 5590 * <ul> 5591 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5592 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5593 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5594 * <li>{@code Integer} property type 5595 * </ul> 5596 * 5597 * <p>Required Permission: 5598 * <ul> 5599 * <li>Signature|Privileged permission "android.car.permission.CAR_EXTERIOR_LIGHTS" to read 5600 * property. 5601 * <li>Property is not writable. 5602 * </ul> 5603 * 5604 * @data_enum {@link VehicleLightState} 5605 */ 5606 @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS) 5607 public static final int FRONT_FOG_LIGHTS_STATE = 289410875; 5608 5609 /** 5610 * Front fog lights switch. 5611 * 5612 * <p>Please refer to the documentation on {@link #FOG_LIGHTS_SWITCH} for more information. 5613 * 5614 * <p>Property Config: 5615 * <ul> 5616 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 5617 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5618 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5619 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5620 * <li>{@code Integer} property type 5621 * </ul> 5622 * 5623 * <p>Required Permission: 5624 * <ul> 5625 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_EXTERIOR_LIGHTS" to 5626 * read and write property. 5627 * </ul> 5628 * 5629 * @data_enum {@link VehicleLightSwitch} 5630 */ 5631 @RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS) 5632 public static final int FRONT_FOG_LIGHTS_SWITCH = 289410876; 5633 5634 /** 5635 * Rear fog lights state. 5636 * 5637 * <p>Please refer to the documentation on {@link #FOG_LIGHTS_STATE} for more information. 5638 * 5639 * <p>Property Config: 5640 * <ul> 5641 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5642 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5643 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5644 * <li>{@code Integer} property type 5645 * </ul> 5646 * 5647 * <p>Required Permission: 5648 * <ul> 5649 * <li>Signature|Privileged permission "android.car.permission.CAR_EXTERIOR_LIGHTS" to read 5650 * property. 5651 * <li>Property is not writable. 5652 * </ul> 5653 * 5654 * @data_enum {@link VehicleLightState} 5655 */ 5656 @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS) 5657 public static final int REAR_FOG_LIGHTS_STATE = 289410877; 5658 5659 /** 5660 * Rear fog lights switch. 5661 * 5662 * <p>Please refer to the documentation on {@link #FOG_LIGHTS_SWITCH} for more information. 5663 * 5664 * <p>Property Config: 5665 * <ul> 5666 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 5667 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5668 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5669 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5670 * <li>{@code Integer} property type 5671 * </ul> 5672 * 5673 * <p>Required Permission: 5674 * <ul> 5675 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_EXTERIOR_LIGHTS" to 5676 * read and write property. 5677 * </ul> 5678 * 5679 * @data_enum {@link VehicleLightSwitch} 5680 */ 5681 @RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS) 5682 public static final int REAR_FOG_LIGHTS_SWITCH = 289410878; 5683 5684 /** 5685 * EV charge current draw limit. 5686 * 5687 * <p>Indicates the maximum current draw threshold for charging set by the user. {@code 5688 * configArray[0]} contains the max current draw allowed by the vehicle in Amperes. 5689 * 5690 * <p>Property Config: 5691 * <ul> 5692 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 5693 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5694 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5695 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5696 * <li>{@code Float} property type 5697 * </ul> 5698 * 5699 * <p>Required Permissions: 5700 * <ul> 5701 * <li>Dangerous permission {@link Car#PERMISSION_ENERGY} or Signature|Privileged permission 5702 * "android.car.permission.CONTROL_CAR_ENERGY" to read property. 5703 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_ENERGY" to write 5704 * property. 5705 * </ul> 5706 */ 5707 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_ENERGY, 5708 Car.PERMISSION_CONTROL_CAR_ENERGY})) 5709 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_CAR_ENERGY)) 5710 public static final int EV_CHARGE_CURRENT_DRAW_LIMIT = 291508031; 5711 5712 /** 5713 * EV charge percent limit. 5714 * 5715 * <p>Indicates the maximum charge percent threshold set by the user. Returns a float value 5716 * from 0 to 100. 5717 * 5718 * <p>configArray is optional. If it is populated, it represents the valid charge percent limit 5719 * values for the vehicle. Here is an example configArray: 5720 * <ul> 5721 * <li>configArray[0] = 20 5722 * <li>configArray[1] = 40 5723 * <li>configArray[2] = 60 5724 * <li>configArray[3] = 80 5725 * </ul> 5726 * 5727 * <p>Property Config: 5728 * <ul> 5729 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 5730 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5731 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5732 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5733 * <li>{@code Float} property type 5734 * </ul> 5735 * 5736 * <p>Required Permissions: 5737 * <ul> 5738 * <li>Dangerous permission {@link Car#PERMISSION_ENERGY} or Signature|Privileged permission 5739 * "android.car.permission.CONTROL_CAR_ENERGY" to read property. 5740 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_ENERGY" to write 5741 * property. 5742 * </ul> 5743 */ 5744 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_ENERGY, 5745 Car.PERMISSION_CONTROL_CAR_ENERGY})) 5746 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_CAR_ENERGY)) 5747 public static final int EV_CHARGE_PERCENT_LIMIT = 291508032; 5748 5749 /** 5750 * Charging state of the car. 5751 * 5752 * <p>Returns the current charging state of the car. See {@link 5753 * android.car.hardware.property.EvChargeState} for possible values for {@code EV_CHARGE_STATE}. 5754 * 5755 * <p>If the vehicle has a target charge percentage other than 100, this property will return 5756 * {@link EvChargeState#STATE_FULLY_CHARGED} when the battery charge level has reached the 5757 * target level. See {@link #EV_CHARGE_PERCENT_LIMIT} for more context. 5758 * 5759 * <p>Property Config: 5760 * <ul> 5761 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5762 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5763 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5764 * <li>{@code Integer} property type 5765 * </ul> 5766 * 5767 * <p>Required Permission: 5768 * <ul> 5769 * <li>Dangerous permission {@link Car#PERMISSION_ENERGY} to read property. 5770 * <li>Property is not writable. 5771 * </ul> 5772 * 5773 * @data_enum {@link EvChargeState} 5774 */ 5775 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY)) 5776 public static final int EV_CHARGE_STATE = 289410881; 5777 5778 /** 5779 * Start or stop charging the EV battery. 5780 * 5781 * <p>The setting that the user wants. Setting this property to true starts the battery charging 5782 * and setting to false stops charging. 5783 * 5784 * <p>Property Config: 5785 * <ul> 5786 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 5787 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5788 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5789 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5790 * <li>{@code Boolean} property type 5791 * </ul> 5792 * 5793 * <p>Required Permission: 5794 * <ul> 5795 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_ENERGY" or 5796 * dangerous permission {@link Car#PERMISSION_ENERGY} to read. 5797 * <li>Signature|Privileged permission "android.car.permission.CONTROL_CAR_ENERGY" to write 5798 * property. 5799 * </ul> 5800 */ 5801 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_ENERGY, 5802 Car.PERMISSION_CONTROL_CAR_ENERGY})) 5803 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_CAR_ENERGY)) 5804 public static final int EV_CHARGE_SWITCH = 287313730; 5805 5806 /** 5807 * Estimated charge time remaining in seconds. 5808 * 5809 * <p>Returns 0 if the vehicle is not charging. 5810 * 5811 * <p>Property Config: 5812 * <ul> 5813 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5814 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5815 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 5816 * <li>{@code Integer} property type 5817 * </ul> 5818 * 5819 * <p>Required Permission: 5820 * <ul> 5821 * <li>Dangerous permission {@link Car#PERMISSION_ENERGY} to read property. 5822 * <li>Property is not writable. 5823 * </ul> 5824 */ 5825 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY)) 5826 public static final int EV_CHARGE_TIME_REMAINING = 289410883; 5827 5828 /** 5829 * Regenerative braking or one-pedal drive setting on the car. 5830 * 5831 * <p>Returns the current state associated with the regenerative braking 5832 * setting in the car. See {@link android.car.hardware.property.EvRegenerativeBrakingState} for 5833 * possible values for {@code EV_REGENERATIVE_BRAKING_STATE}. 5834 * 5835 * <p>If the {@link #EV_BRAKE_REGENERATION_LEVEL} property has been implemented, it is likely 5836 * that the OEM supports a more granular set of regeneration levels than those provided by this 5837 * property through {@link EvRegenerativeBrakingState}. 5838 * 5839 * <p>Property Config: 5840 * <ul> 5841 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5842 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5843 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5844 * <li>{@code Integer} property type 5845 * </ul> 5846 * 5847 * <p>Required Permission: 5848 * <ul> 5849 * <li>Dangerous permission {@link Car#PERMISSION_ENERGY} to read property. 5850 * <li>Property is not writable. 5851 * </ul> 5852 * 5853 * @data_enum {@link EvRegenerativeBrakingState} 5854 */ 5855 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY)) 5856 public static final int EV_REGENERATIVE_BRAKING_STATE = 289410884; 5857 5858 /** 5859 * Vehicle’s curb weight in kilograms. 5860 * 5861 * <p>Returns the vehicle's curb weight in kilograms. This is the total weight of a vehicle, 5862 * inclusive of standard equipment and necessary operating fluids such as motor oil, 5863 * transmission oil and brake fluid, but without passengers or cargo. configArray[0] specifies 5864 * the vehicle’s gross weight in kilograms. This is the vehicle curb weight plus the maximum 5865 * payload (passengers + cargo) the vehicle can support. 5866 * 5867 * <p>Property Config: 5868 * <ul> 5869 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5870 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5871 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 5872 * <li>{@code Integer} property type 5873 * </ul> 5874 * 5875 * <p>Required Permission: 5876 * <ul> 5877 * <li>Signature|Privileged permission "android.car.permission.PRIVILEGED_CAR_INFO" to read 5878 * property. 5879 * <li>Property is not writable. 5880 * </ul> 5881 */ 5882 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_PRIVILEGED_CAR_INFO)) 5883 public static final int VEHICLE_CURB_WEIGHT = 289410886; 5884 5885 /** 5886 * Indicates if there is a trailer present or not. 5887 * 5888 * <p>Returns the trailer state of the car. See {@code TrailerState} for possible values for 5889 * {@code TRAILER_PRESENT}. 5890 * 5891 * <p>Property Config: 5892 * <ul> 5893 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5894 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5895 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5896 * <li>{@code Integer} property type 5897 * </ul> 5898 * 5899 * <p>Required Permission: 5900 * <ul> 5901 * <li>Signature|Privileged permission "android.car.permission.PRIVILEGED_CAR_INFO" to read 5902 * property. 5903 * <li>Property is not writable. 5904 * </ul> 5905 * 5906 * @data_enum {@link TrailerState} 5907 */ 5908 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_PRIVILEGED_CAR_INFO)) 5909 public static final int TRAILER_PRESENT = 289410885; 5910 5911 /** 5912 * EU's General security regulation compliance requirement. 5913 * 5914 * <p>Returns whether general security regulation compliance is required, if 5915 * so, what type of requirement. See {@link GsrComplianceType} for possible enums. 5916 * 5917 * <p>Property Config: 5918 * <ul> 5919 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5920 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5921 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC} 5922 * <li>{@code Integer} property type 5923 * </ul> 5924 * 5925 * <p>Required Permission: 5926 * <ul> 5927 * <li>Normal permission {@link Car#PERMISSION_CAR_INFO} to read property. 5928 * <li>Property is not writable. 5929 * </ul> 5930 * 5931 * @data_enum {@link GsrComplianceType} 5932 */ 5933 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_CAR_INFO)) 5934 public static final int GENERAL_SAFETY_REGULATION_COMPLIANCE = 289410887; 5935 5936 /** 5937 * Current state of vehicle autonomy. 5938 * 5939 * <p>Defines the level of autonomy currently engaged in the vehicle from the SAE standard 5940 * levels 0-5, with 0 representing no autonomy and 5 representing full driving automation. These 5941 * levels are defined in accordance with the standards set in the 5942 * <a href="https://www.sae.org/standards/content/j3016_202104/">J3016_202104 revision</a> of 5943 * the SAE automation level taxonomy and its clarification for international audiences 5944 * <a href="https://www.sae.org/blog/sae-j3016-update">here</a>. 5945 * 5946 * <p>For the global area ID (0), the {@link 5947 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 5948 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 5949 * from {@link android.car.hardware.property.VehicleAutonomousState} are supported. 5950 * 5951 * <p>Property Config: 5952 * <ul> 5953 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5954 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5955 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5956 * <li>{@code Integer} property type 5957 * </ul> 5958 * 5959 * <p>Required Permission: 5960 * <ul> 5961 * <li>Signature|Privileged permission "android.car.permission.CAR_DRIVING_STATE" to 5962 * read property. 5963 * <li>Property is not writable. 5964 * </ul> 5965 * 5966 * @data_enum {@link android.car.hardware.property.VehicleAutonomousState} 5967 * 5968 * @hide 5969 */ 5970 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 5971 @SystemApi 5972 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_CAR_DRIVING_STATE)) 5973 public static final int VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL = 289410892; 5974 5975 /** 5976 * Enable or disable Automatic Emergency Braking (AEB). 5977 * 5978 * <p>Returns true if AEB is enabled and false if AEB is disabled. When AEB is enabled, the ADAS 5979 * system in the vehicle should be turned on and monitoring to avoid potential collisions. This 5980 * property applies for higher speed applications only. For enabling low speed automatic 5981 * emergency braking, {@link LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED} will be used. 5982 * 5983 * <p>This property is defined as read_write, but OEMs have the option to implement it as read 5984 * only. 5985 * 5986 * <p>Property Config: 5987 * <ul> 5988 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 5989 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 5990 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 5991 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 5992 * <li>{@code Boolean} property type 5993 * </ul> 5994 * 5995 * <p>Required Permissions: 5996 * <ul> 5997 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_SETTINGS} or 5998 * Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to read 5999 * property. 6000 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to write 6001 * property. 6002 * </ul> 6003 * 6004 * @hide 6005 */ 6006 @SystemApi 6007 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_READ_ADAS_SETTINGS, 6008 Car.PERMISSION_CONTROL_ADAS_SETTINGS})) 6009 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ADAS_SETTINGS)) 6010 public static final int AUTOMATIC_EMERGENCY_BRAKING_ENABLED = 287313920; 6011 6012 /** 6013 * Automatic Emergency Braking (AEB) state. 6014 * 6015 * <p>Returns the current state of AEB. This property will always return a valid state defined 6016 * in {@link android.car.hardware.property.AutomaticEmergencyBrakingState} or {@link 6017 * android.car.hardware.property.ErrorState}. This property should apply for higher speed 6018 * applications only. For representing the state of the low speed automatic emergency braking 6019 * system, {@link LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE} should be used. 6020 * 6021 * <p>If AEB includes forward collision warnings before activating the brakes, those warnings 6022 * will be surfaced through the Forward Collision Warning (FCW) properties. 6023 * 6024 * <p>For the global area ID (0), the {@link 6025 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 6026 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 6027 * from {@link android.car.hardware.property.AutomaticEmergencyBrakingState} and {@link 6028 * android.car.hardware.property.ErrorState} are supported. 6029 * 6030 * <p>Property Config: 6031 * <ul> 6032 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6033 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6034 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6035 * <li>{@code Integer} property type 6036 * </ul> 6037 * 6038 * <p>Required Permission: 6039 * <ul> 6040 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_STATES} to read 6041 * property. 6042 * <li>Property is not writable. 6043 * </ul> 6044 * 6045 * @data_enum {@link AutomaticEmergencyBrakingState} 6046 * @data_enum {@link ErrorState} 6047 * 6048 * @hide 6049 */ 6050 @SystemApi 6051 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_ADAS_STATES)) 6052 public static final int AUTOMATIC_EMERGENCY_BRAKING_STATE = 289411073; 6053 6054 /** 6055 * Enable or disable Forward Collision Warning (FCW). 6056 * 6057 * <p>Returns true if FCW is enabled and false if FCW is disabled. When FCW is enabled, the ADAS 6058 * system in the vehicle should be turned on and monitoring for potential collisions. 6059 * 6060 * <p>This property is defined as read_write, but OEMs have the option to implement it as read 6061 * only. 6062 * 6063 * <p>Property Config: 6064 * <ul> 6065 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 6066 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6067 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6068 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6069 * <li>{@code Boolean} property type 6070 * </ul> 6071 * 6072 * <p>Required Permissions: 6073 * <ul> 6074 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_SETTINGS} or 6075 * Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to read 6076 * property. 6077 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to write 6078 * property. 6079 * </ul> 6080 * 6081 * @hide 6082 */ 6083 @SystemApi 6084 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_READ_ADAS_SETTINGS, 6085 Car.PERMISSION_CONTROL_ADAS_SETTINGS})) 6086 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ADAS_SETTINGS)) 6087 public static final int FORWARD_COLLISION_WARNING_ENABLED = 287313922; 6088 6089 /** 6090 * Forward Collision Warning State (FCW) state. 6091 * 6092 * <p>Returns the current state of FCW. This property will always return a valid state defined 6093 * in {@link android.car.hardware.property.ForwardCollisionWarningState} or {@link 6094 * android.car.hardware.property.ErrorState}. 6095 * 6096 * <p>For the global area ID (0), the {@link 6097 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 6098 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 6099 * from {@link android.car.hardware.property.ForwardCollisionWarningState} and {@link 6100 * android.car.hardware.property.ErrorState} are supported. 6101 * 6102 * <p>Property Config: 6103 * <ul> 6104 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6105 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6106 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6107 * <li>{@code Integer} property type 6108 * </ul> 6109 * 6110 * <p>Required Permission: 6111 * <ul> 6112 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_STATES} to read 6113 * property. 6114 * <li>Property is not writable. 6115 * </ul> 6116 * 6117 * @data_enum {@link ForwardCollisionWarningState} 6118 * @data_enum {@link ErrorState} 6119 * 6120 * @hide 6121 */ 6122 @SystemApi 6123 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_ADAS_STATES)) 6124 public static final int FORWARD_COLLISION_WARNING_STATE = 289411075; 6125 6126 /** 6127 * Enable and disable Blind Spot Warning (BSW). 6128 * 6129 * <p>Returns true if BSW is enabled and false if BSW is disabled. When BSW is enabled, the ADAS 6130 * system in the vehicle should be turned on and monitoring for objects in the vehicle’s blind 6131 * spots. 6132 * 6133 * <p>This property is defined as read_write, but OEMs have the option to implement it as read 6134 * only. 6135 * 6136 * <p>Property Config: 6137 * <ul> 6138 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 6139 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6140 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6141 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6142 * <li>{@code Boolean} property type 6143 * </ul> 6144 * 6145 * <p>Required Permissions: 6146 * <ul> 6147 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_SETTINGS} or 6148 * Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to read 6149 * property. 6150 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to write 6151 * property. 6152 * </ul> 6153 * 6154 * @hide 6155 */ 6156 @SystemApi 6157 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_READ_ADAS_SETTINGS, 6158 Car.PERMISSION_CONTROL_ADAS_SETTINGS})) 6159 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ADAS_SETTINGS)) 6160 public static final int BLIND_SPOT_WARNING_ENABLED = 287313924; 6161 6162 /** 6163 * Blind Spot Warning (BSW) state. 6164 * 6165 * <p>Returns the current state of BSW. This property will always return a valid state defined 6166 * in {@link android.car.hardware.property.BlindSpotWarningState} or {@link 6167 * android.car.hardware.property.ErrorState}. 6168 * 6169 * <p>For the global area ID (0), the {@link 6170 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 6171 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 6172 * from {@link android.car.hardware.property.BlindSpotWarningState} and {@link 6173 * android.car.hardware.property.ErrorState} are supported. 6174 * 6175 * <p>Property Config: 6176 * <ul> 6177 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6178 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_MIRROR} 6179 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6180 * <li>{@code Integer} property type 6181 * </ul> 6182 * 6183 * <p>Required Permission: 6184 * <ul> 6185 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_STATES} to read 6186 * property. 6187 * <li>Property is not writable. 6188 * </ul> 6189 * 6190 * @data_enum {@link BlindSpotWarningState} 6191 * @data_enum {@link ErrorState} 6192 * 6193 * @hide 6194 */ 6195 @SystemApi 6196 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_ADAS_STATES)) 6197 public static final int BLIND_SPOT_WARNING_STATE = 339742725; 6198 6199 /** 6200 * Enable or disable Lane Departure Warning (LDW). 6201 * 6202 * <p>Returns true if LDW is enabled and false if LDW is disabled. When LDW is enabled, the ADAS 6203 * system in the vehicle should be turned on and monitoring if the vehicle is approaching or 6204 * crossing lane lines, in which case a warning will be given. 6205 * 6206 * <p>This property is defined as read_write, but OEMs have the option to implement it as read 6207 * only. 6208 * 6209 * <p>Property Config: 6210 * <ul> 6211 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 6212 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6213 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6214 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6215 * <li>{@code Boolean} property type 6216 * </ul> 6217 * 6218 * <p>Required Permissions: 6219 * <ul> 6220 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_SETTINGS} or 6221 * Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to read 6222 * property. 6223 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to write 6224 * property. 6225 * </ul> 6226 * 6227 * @hide 6228 */ 6229 @SystemApi 6230 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_READ_ADAS_SETTINGS, 6231 Car.PERMISSION_CONTROL_ADAS_SETTINGS})) 6232 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ADAS_SETTINGS)) 6233 public static final int LANE_DEPARTURE_WARNING_ENABLED = 287313926; 6234 6235 /** 6236 * Lane Departure Warning (LDW) state. 6237 * 6238 * <p>Returns the current state of LDW. This property will always return a valid state defined 6239 * in {@link android.car.hardware.property.LaneDepartureWarningState} or {@link 6240 * android.car.hardware.property.ErrorState}. 6241 * 6242 * <p>For the global area ID (0), the {@link 6243 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 6244 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 6245 * from {@link android.car.hardware.property.LaneDepartureWarningState} and {@link 6246 * android.car.hardware.property.ErrorState} are supported. 6247 * 6248 * <p>Property Config: 6249 * <ul> 6250 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6251 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6252 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6253 * <li>{@code Integer} property type 6254 * </ul> 6255 * 6256 * <p>Required Permission: 6257 * <ul> 6258 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_STATES} to read 6259 * property. 6260 * <li>Property is not writable. 6261 * </ul> 6262 * 6263 * @data_enum {@link LaneDepartureWarningState} 6264 * @data_enum {@link ErrorState} 6265 * 6266 * @hide 6267 */ 6268 @SystemApi 6269 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_ADAS_STATES)) 6270 public static final int LANE_DEPARTURE_WARNING_STATE = 289411079; 6271 6272 /** 6273 * Enable or disable Lane Keep Assist (LKA). 6274 * 6275 * <p>Returns true if LKA is enabled and false if LKA is disabled. When LKA is enabled, the ADAS 6276 * system in the vehicle should be turned on and monitoring if the driver unintentionally drifts 6277 * toward or over the lane marking. If an unintentional lane departure is detected, the system 6278 * applies steering control to return the vehicle into the current lane. 6279 * 6280 * <p>This is different from Lane Centering Assist (LCA) which, when activated, applies 6281 * continuous steering control to keep the vehicle centered in the current lane. 6282 * 6283 * <p>This property is defined as read_write, but OEMs have the option to implement it as read 6284 * only. 6285 * 6286 * <p>Property Config: 6287 * <ul> 6288 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 6289 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6290 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6291 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6292 * <li>{@code Boolean} property type 6293 * </ul> 6294 * 6295 * <p>Required Permissions: 6296 * <ul> 6297 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_SETTINGS} or 6298 * Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to read 6299 * property. 6300 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to write 6301 * property. 6302 * </ul> 6303 * 6304 * @hide 6305 */ 6306 @SystemApi 6307 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_READ_ADAS_SETTINGS, 6308 Car.PERMISSION_CONTROL_ADAS_SETTINGS})) 6309 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ADAS_SETTINGS)) 6310 public static final int LANE_KEEP_ASSIST_ENABLED = 287313928; 6311 6312 /** 6313 * Lane Keep Assist (LKA) state. 6314 * 6315 * <p>Returns the current state of LKA. This property will always return a valid state defined 6316 * in {@link android.car.hardware.property.LaneKeepAssistState} or {@link 6317 * android.car.hardware.property.ErrorState}. 6318 * 6319 * <p>If LKA includes lane departure warnings before applying steering corrections, those 6320 * warnings will be surfaced through {@link #LANE_DEPARTURE_WARNING_STATE}. 6321 * 6322 * <p>For the global area ID (0), the {@link 6323 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 6324 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 6325 * from {@link android.car.hardware.property.LaneKeepAssistState} and {@link 6326 * android.car.hardware.property.ErrorState} are supported. 6327 * 6328 * <p>Property Config: 6329 * <ul> 6330 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6331 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6332 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6333 * <li>{@code Integer} property type 6334 * </ul> 6335 * 6336 * <p>Required Permission: 6337 * <ul> 6338 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_STATES} to read 6339 * property. 6340 * <li>Property is not writable. 6341 * </ul> 6342 * 6343 * @data_enum {@link LaneKeepAssistState} 6344 * @data_enum {@link ErrorState} 6345 * 6346 * @hide 6347 */ 6348 @SystemApi 6349 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_ADAS_STATES)) 6350 public static final int LANE_KEEP_ASSIST_STATE = 289411081; 6351 6352 /** 6353 * Enable or disable Lane Centering Assist (LCA). 6354 * 6355 * <p>Returns true if LCA is enabled and false if LCA is disabled. When LCA is enabled, the ADAS 6356 * system in the vehicle should be turned on and waiting for an activation signal from the 6357 * driver. Once the feature is activated, the ADAS system should be steering the vehicle to keep 6358 * it centered in its current lane. 6359 * 6360 * <p>This is different from Lane Keep Assist (LKA) which monitors if the driver unintentionally 6361 * drifts toward or over the lane marking. If an unintentional lane departure is detected, the 6362 * system applies steering control to return the vehicle into the current lane. 6363 * 6364 * <p>This property is defined as read_write, but OEMs have the option to implement it as read 6365 * only. 6366 * 6367 * <p>Property Config: 6368 * <ul> 6369 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 6370 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6371 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6372 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6373 * <li>{@code Boolean} property type 6374 * </ul> 6375 * 6376 * <p>Required Permissions: 6377 * <ul> 6378 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_SETTINGS} or 6379 * Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to read 6380 * property. 6381 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to write 6382 * property. 6383 * </ul> 6384 * 6385 * @hide 6386 */ 6387 @SystemApi 6388 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_READ_ADAS_SETTINGS, 6389 Car.PERMISSION_CONTROL_ADAS_SETTINGS})) 6390 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ADAS_SETTINGS)) 6391 public static final int LANE_CENTERING_ASSIST_ENABLED = 287313930; 6392 6393 /** 6394 * Lane Centering Assist (LCA) commands. 6395 * 6396 * <p>Commands to activate and suspend LCA. They are only valid when {@link 6397 * #LANE_CENTERING_ASSIST_ENABLED} = {@code true}. Otherwise, these commands will throw a {@link 6398 * android.car.hardware.property.PropertyNotAvailableException}. 6399 * 6400 * <p>When the command {@link android.car.hardware.property.LaneCenteringAssistCommand#ACTIVATE} 6401 * is sent, {@link #LANE_CENTERING_ASSIST_STATE} will be set to {@link 6402 * android.car.hardware.property.LaneCenteringAssistState#ACTIVATION_REQUESTED}. When the 6403 * command {@link android.car.hardware.property.LaneCenteringAssistCommand#ACTIVATE} succeeds, 6404 * {@link #LANE_CENTERING_ASSIST_STATE} will be set to {@link 6405 * android.car.hardware.property.LaneCenteringAssistState#ACTIVATED}. When the command {@link 6406 * android.car.hardware.property.LaneCenteringAssistCommand#DEACTIVATE} succeeds, {@link 6407 * #LANE_CENTERING_ASSIST_STATE} will be set to {@link 6408 * android.car.hardware.property.LaneCenteringAssistState#ENABLED}. 6409 * 6410 * <p>For the global area ID (0), the {@link 6411 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 6412 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which enum 6413 * values from {@link android.car.hardware.property.LaneCenteringAssistCommand} are supported. 6414 * 6415 * <p>Property Config: 6416 * <ul> 6417 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_WRITE} 6418 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6419 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6420 * <li>{@code Integer} property type 6421 * </ul> 6422 * 6423 * <p>Required Permission: 6424 * <ul> 6425 * <li>Property is not readable. 6426 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_STATES} to write 6427 * property. 6428 * </ul> 6429 * 6430 * @data_enum {@link LaneCenteringAssistCommand} 6431 * 6432 * @hide 6433 */ 6434 @SystemApi 6435 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ADAS_STATES)) 6436 public static final int LANE_CENTERING_ASSIST_COMMAND = 289411083; 6437 6438 /** 6439 * Lane Centering Assist (LCA) state. 6440 * 6441 * <p>Returns the current state of LCA. This property will always return a valid state defined 6442 * in {@link android.car.hardware.property.LaneCenteringAssistState} or {@link 6443 * android.car.hardware.property.ErrorState}. 6444 * 6445 * <p>If LCA includes lane departure warnings, those warnings will be surfaced through the Lane 6446 * Departure Warning (LDW) properties. 6447 * 6448 * <p>For the global area ID (0), the {@link 6449 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 6450 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 6451 * from {@link android.car.hardware.property.LaneCenteringAssistState} and {@link 6452 * android.car.hardware.property.ErrorState} are supported. 6453 * 6454 * <p>Property Config: 6455 * <ul> 6456 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6457 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6458 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6459 * <li>{@code Integer} property type 6460 * </ul> 6461 * 6462 * <p>Required Permission: 6463 * <ul> 6464 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_STATES} to read 6465 * property. 6466 * <li>Property is not writable. 6467 * </ul> 6468 * 6469 * @data_enum {@link LaneCenteringAssistState} 6470 * @data_enum {@link ErrorState} 6471 * 6472 * @hide 6473 */ 6474 @SystemApi 6475 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_ADAS_STATES)) 6476 public static final int LANE_CENTERING_ASSIST_STATE = 289411084; 6477 6478 /** 6479 * Enable or disable Emergency Lane Keep Assist (ELKA). 6480 * 6481 * <p>Return true if ELKA is enabled and false if ELKA is disabled. When ELKA is enabled, the 6482 * ADAS system in the vehicle should be on and monitoring for unsafe lane changes by the driver. 6483 * When an unsafe maneuver is detected, ELKA alerts the driver and applies steering corrections 6484 * to keep the vehicle in its original lane. 6485 * 6486 * <p>This property is defined as read_write, but OEMs have the option to implement it as read 6487 * only. 6488 * 6489 * <p>Property Config: 6490 * <ul> 6491 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 6492 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6493 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6494 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6495 * <li>{@code Boolean} property type 6496 * </ul> 6497 * 6498 * <p>Required Permissions: 6499 * <ul> 6500 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_SETTINGS} or 6501 * Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to read 6502 * property. 6503 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to write 6504 * property. 6505 * </ul> 6506 * 6507 * @hide 6508 */ 6509 @SystemApi 6510 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_READ_ADAS_SETTINGS, 6511 Car.PERMISSION_CONTROL_ADAS_SETTINGS})) 6512 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ADAS_SETTINGS)) 6513 public static final int EMERGENCY_LANE_KEEP_ASSIST_ENABLED = 287313933; 6514 6515 /** 6516 * Emergency Lane Keep Assist (ELKA) state. 6517 * 6518 * <p>Returns the current state of ELKA. Generally, this property should return a valid state 6519 * defined in the {@link android.car.hardware.property.EmergencyLaneKeepAssistState} or {@link 6520 * android.car.hardware.property.ErrorState}. For example, if the feature is not available due 6521 * to some temporary state, that information should be conveyed through {@link 6522 * android.car.hardware.property.ErrorState}. 6523 * 6524 * <p>For the global area ID (0), the {@link 6525 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 6526 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 6527 * from {@link android.car.hardware.property.EmergencyLaneKeepAssistState} and {@link 6528 * android.car.hardware.property.ErrorState} are supported. 6529 * 6530 * <p>Property Config: 6531 * <ul> 6532 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6533 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6534 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6535 * <li>{@code Integer} property type 6536 * </ul> 6537 * 6538 * <p>Required Permission: 6539 * <ul> 6540 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_STATES} to read 6541 * property. 6542 * <li>Property is not writable. 6543 * </ul> 6544 * 6545 * @data_enum {@link EmergencyLaneKeepAssistState} 6546 * @data_enum {@link ErrorState} 6547 * 6548 * @hide 6549 */ 6550 @SystemApi 6551 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_ADAS_STATES)) 6552 public static final int EMERGENCY_LANE_KEEP_ASSIST_STATE = 289411086; 6553 6554 /** 6555 * Enable or disable Cruise Control (CC). 6556 * 6557 * <p>Return true if CC is enabled and false if CC is disabled. This property is shared by all 6558 * forms of {@link android.car.hardware.property.CruiseControlType}). 6559 * 6560 * <p>When CC is enabled, the ADAS system in the vehicle should be turned on and responding to 6561 * commands. 6562 * 6563 * <p>This property is defined as read_write, but OEMs have the option to implement it as read 6564 * only. 6565 * 6566 * <p>Property Config: 6567 * <ul> 6568 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 6569 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6570 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6571 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6572 * <li>{@code Boolean} property type 6573 * </ul> 6574 * 6575 * <p>Required Permissions: 6576 * <ul> 6577 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_SETTINGS} or 6578 * Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to read 6579 * property. 6580 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to write 6581 * property. 6582 * </ul> 6583 * 6584 * @hide 6585 */ 6586 @SystemApi 6587 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_READ_ADAS_SETTINGS, 6588 Car.PERMISSION_CONTROL_ADAS_SETTINGS})) 6589 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ADAS_SETTINGS)) 6590 public static final int CRUISE_CONTROL_ENABLED = 287313935; 6591 6592 /** 6593 * Current type of Cruise Control (CC). 6594 * 6595 * <p>When {@link #CRUISE_CONTROL_ENABLED} is true, this property returns the type of CC that is 6596 * currently enabled (for example, standard CC, adaptive CC, etc.). Generally, this property 6597 * should return a valid state defined in the {@link 6598 * android.car.hardware.property.CruiseControlType} or {@link 6599 * android.car.hardware.property.ErrorState}. For example, if the feature is not available due 6600 * to some temporary state, that information should be conveyed through {@link 6601 * android.car.hardware.property.ErrorState}. 6602 * 6603 * <p>For the global area ID (0), the {@link 6604 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 6605 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 6606 * from {@link android.car.hardware.property.CruiseControlType} and {@link 6607 * android.car.hardware.property.ErrorState} are supported. 6608 * 6609 * Trying to write {@link android.car.hardware.property.CruiseControlType#OTHER} or an 6610 * {@link android.car.hardware.property.ErrorState} to this property will throw an {@code 6611 * IllegalArgumentException}. 6612 * 6613 * <p>Property Config: 6614 * <ul> 6615 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 6616 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6617 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6618 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6619 * <li>{@code Integer} property type 6620 * </ul> 6621 * 6622 * <p>Required Permissions: 6623 * <ul> 6624 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_STATES} or 6625 * Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_STATES} to read 6626 * property. 6627 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_STATES} to write 6628 * property. 6629 * </ul> 6630 * 6631 * @data_enum {@link CruiseControlType} 6632 * @data_enum {@link ErrorState} 6633 * 6634 * @hide 6635 */ 6636 @SystemApi 6637 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_READ_ADAS_STATES, 6638 Car.PERMISSION_CONTROL_ADAS_STATES})) 6639 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ADAS_STATES)) 6640 public static final int CRUISE_CONTROL_TYPE = 289411088; 6641 6642 /** 6643 * Current state of Cruise Control (CC). 6644 * 6645 * <p>This property returns the state of CC. Generally, this property should return a valid 6646 * state defined in the {@link android.car.hardware.property.CruiseControlState} or {@link 6647 * android.car.hardware.property.ErrorState}. For example, if the feature is not available due 6648 * to some temporary state, that information should be conveyed through {@link 6649 * android.car.hardware.property.ErrorState}. 6650 * 6651 * <p>For the global area ID (0), the {@link 6652 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 6653 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 6654 * from {@link android.car.hardware.property.CruiseControlState} and {@link 6655 * android.car.hardware.property.ErrorState} are supported. 6656 * 6657 * <p>Property Config: 6658 * <ul> 6659 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6660 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6661 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6662 * <li>{@code Integer} property type 6663 * </ul> 6664 * 6665 * <p>Required Permission: 6666 * <ul> 6667 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_STATES} to read 6668 * property. 6669 * <li>Property is not writable. 6670 * </ul> 6671 * 6672 * @data_enum {@link CruiseControlState} 6673 * @data_enum {@link ErrorState} 6674 * 6675 * @hide 6676 */ 6677 @SystemApi 6678 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_ADAS_STATES)) 6679 public static final int CRUISE_CONTROL_STATE = 289411089; 6680 6681 /** 6682 * Write Cruise Control (CC) commands. 6683 * 6684 * <p>See {@link android.car.hardware.property.CruiseControlCommand} for the details about 6685 * each supported command. 6686 * 6687 * <p>For the global area ID (0), the {@link 6688 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 6689 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 6690 * from {@link android.car.hardware.property.CruiseControlCommand} are supported. 6691 * 6692 * <p>When this property is unavailable (for example when {@link #CRUISE_CONTROL_ENABLED} is 6693 * false), writing this property will throw a {@link 6694 * android.car.hardware.property.PropertyNotAvailableException}. 6695 * 6696 * <p>Property Config: 6697 * <ul> 6698 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_WRITE} 6699 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6700 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6701 * <li>{@code Integer} property type 6702 * </ul> 6703 * 6704 * <p>Required Permission: 6705 * <ul> 6706 * <li>Property is not readable. 6707 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_STATES} to write 6708 * property. 6709 * </ul> 6710 * 6711 * @data_enum {@link CruiseControlCommand} 6712 * 6713 * @hide 6714 */ 6715 @SystemApi 6716 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ADAS_STATES)) 6717 public static final int CRUISE_CONTROL_COMMAND = 289411090; 6718 6719 /** 6720 * Current target speed for Cruise Control (CC) in meters per second. 6721 * 6722 * <p>{@link android.car.hardware.property.AreaIdConfig#getMinValue()} and {@link 6723 * android.car.hardware.property.AreaIdConfig#getMaxValue()} return the min and max target 6724 * speed values respectively. These values will be non-negative. 6725 * 6726 * <p>{@link android.car.hardware.property.AreaIdConfig#getMinValue()} represents the lower 6727 * bound of the target speed. 6728 * <p>{@link android.car.hardware.property.AreaIdConfig#getMaxValue()} represents the upper 6729 * bound of the target speed. 6730 * 6731 * <p>When this property is unavailable (for example when {@link #CRUISE_CONTROL_ENABLED} is 6732 * false), reading this property will throw a {@link 6733 * android.car.hardware.property.PropertyNotAvailableException}. 6734 * 6735 * <p>Property Config: 6736 * <ul> 6737 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6738 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6739 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6740 * <li>{@code Float} property type 6741 * </ul> 6742 * 6743 * <p>Required Permission: 6744 * <ul> 6745 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_STATES} to read 6746 * property. 6747 * <li>Property is not writable. 6748 * </ul> 6749 * 6750 * @hide 6751 */ 6752 @SystemApi 6753 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_ADAS_STATES)) 6754 public static final int CRUISE_CONTROL_TARGET_SPEED = 291508243; 6755 6756 /** 6757 * Current target time gap for Adaptive Cruise Control (ACC) or Predictive Cruise Control in 6758 * milliseconds. 6759 * 6760 * <p>This property should specify the target time gap to a leading vehicle. This gap is defined 6761 * as the time to travel the distance between the leading vehicle's rear-most point to the ACC 6762 * vehicle's front-most point. The actual time gap from a leading vehicle can be above or below 6763 * this value. 6764 * 6765 * <p>The possible values to set for the target time gap should be specified in {@code 6766 * configArray} in ascending order. All values must be positive. If the property is writable, 6767 * all values must be writable. 6768 * 6769 * <p>When this property is unavailable (for example when {@link #CRUISE_CONTROL_ENABLED} is 6770 * false), reading or writing this property will throw a {@link 6771 * android.car.hardware.property.PropertyNotAvailableException}. 6772 * 6773 * <p>Property Config: 6774 * <ul> 6775 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 6776 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6777 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6778 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6779 * <li>{@code Integer} property type 6780 * </ul> 6781 * 6782 * <p>Required Permissions: 6783 * <ul> 6784 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_STATES} or 6785 * Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_STATES} to read 6786 * property. 6787 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_STATES} to write 6788 * property. 6789 * </ul> 6790 * 6791 * @hide 6792 */ 6793 @SystemApi 6794 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_READ_ADAS_STATES, 6795 Car.PERMISSION_CONTROL_ADAS_STATES})) 6796 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ADAS_STATES)) 6797 public static final int ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP = 289411092; 6798 6799 /** 6800 * Measured distance from leading vehicle when using Adaptive Cruise Control (ACC) or Predictive 6801 * Cruise Control in millimeters. 6802 * 6803 * <p>Returns the measured distance in meters from the lead vehicle for ACC between the 6804 * rear-most point of the leading vehicle and the front-most point of the ACC vehicle. 6805 * 6806 * <p>{@link CarPropertyConfig#getMinValue(int)} returns 0. 6807 * <p>{@link CarPropertyConfig#getMaxValue(int)} returns the maximum range the distance sensor 6808 * can support. This value will be non-negative. 6809 * 6810 * <p>When no lead vehicle is detected (that is, when there is no leading vehicle or the leading 6811 * vehicle is too far away for the sensor to detect), this property will throw a {@link 6812 * android.car.hardware.property.PropertyNotAvailableException}. 6813 * 6814 * <p>When this property is unavailable (for example when {@link #CRUISE_CONTROL_ENABLED} is 6815 * false), reading this property will throw a {@link 6816 * android.car.hardware.property.PropertyNotAvailableException}. 6817 * 6818 * <p>Property Config: 6819 * <ul> 6820 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6821 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6822 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS} 6823 * <li>{@code Integer} property type 6824 * </ul> 6825 * 6826 * <p>Required Permission: 6827 * <ul> 6828 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_STATES} to read 6829 * property. 6830 * <li>Property is not writable. 6831 * </ul> 6832 * 6833 * @hide 6834 */ 6835 @SystemApi 6836 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_ADAS_STATES)) 6837 public static final int ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE = 289411093; 6838 6839 /** 6840 * Enable or disable Hands On Detection (HOD). 6841 * 6842 * <p>Return true if HOD is enabled and false if HOD is disabled. When HOD is enabled, a system 6843 * inside the vehicle should be monitoring the presence of the driver's hands on the steering 6844 * wheel and send a warning if it detects that the driver's hands are no longer on the steering 6845 * wheel. 6846 * 6847 * <p>This property is defined as read_write, but OEMs have the option to implement it as read 6848 * only. 6849 * 6850 * <p>Property Config: 6851 * <ul> 6852 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 6853 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6854 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6855 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6856 * <li>{@code Boolean} property type 6857 * </ul> 6858 * 6859 * <p>Required Permissions: 6860 * <ul> 6861 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_DRIVER_MONITORING_SETTINGS} 6862 * or Signature|Privileged permission {@link 6863 * Car#PERMISSION_CONTROL_DRIVER_MONITORING_SETTINGS} to read property. 6864 * <li>Signature|Privileged permission {@link 6865 * Car#PERMISSION_CONTROL_DRIVER_MONITORING_SETTINGS} to write property. 6866 * </ul> 6867 * 6868 * @hide 6869 */ 6870 @SystemApi 6871 @RequiresPermission.Read(@RequiresPermission(anyOf = { 6872 Car.PERMISSION_READ_DRIVER_MONITORING_SETTINGS, 6873 Car.PERMISSION_CONTROL_DRIVER_MONITORING_SETTINGS})) 6874 @RequiresPermission.Write(@RequiresPermission( 6875 Car.PERMISSION_CONTROL_DRIVER_MONITORING_SETTINGS)) 6876 public static final int HANDS_ON_DETECTION_ENABLED = 287313942; 6877 6878 /** 6879 * Hands On Detection (HOD) driver state. 6880 * 6881 * <p>Returns whether the driver's hands are on the steering wheel. Generally, this property 6882 * should return a valid state defined in the {@link 6883 * android.car.hardware.property.HandsOnDetectionDriverState} or {@link 6884 * android.car.hardware.property.ErrorState}. For example, if the feature is not available due 6885 * to some temporary state, that information should be conveyed through {@link 6886 * android.car.hardware.property.ErrorState}. 6887 * 6888 * <p>If the vehicle is sending a warning to the user because the driver's hands have been off 6889 * the steering wheel for too long, the warning should be surfaced through 6890 * {@link #HANDS_ON_DETECTION_WARNING}. 6891 * 6892 * <p>For the global area ID (0), the {@link 6893 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 6894 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 6895 * from {@link android.car.hardware.property.HandsOnDetectionDriverState} and {@link 6896 * android.car.hardware.property.ErrorState} are supported. 6897 * 6898 * <p>Property Config: 6899 * <ul> 6900 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6901 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6902 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6903 * <li>{@code Integer} property type 6904 * </ul> 6905 * 6906 * <p>Required Permission: 6907 * <ul> 6908 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_DRIVER_MONITORING_STATES} to 6909 * read property. 6910 * <li>Property is not writable. 6911 * </ul> 6912 * 6913 * @data_enum {@link HandsOnDetectionDriverState} 6914 * @data_enum {@link ErrorState} 6915 * 6916 * @hide 6917 */ 6918 @SystemApi 6919 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DRIVER_MONITORING_STATES)) 6920 public static final int HANDS_ON_DETECTION_DRIVER_STATE = 289411095; 6921 /** 6922 * Hands On Detection (HOD) warning. 6923 * 6924 * <p>Returns whether a warning is being sent to the driver for having their hands off the wheel 6925 * for too long a duration. 6926 * 6927 * <p>Generally, this property should return a valid state defined in the {@link 6928 * android.car.hardware.property.HandsOnDetectionWarning} or {@link 6929 * android.car.hardware.property.ErrorState}. For example, if the feature is not available due 6930 * to some temporary state, that information should be conveyed through an {@link 6931 * android.car.hardware.property.ErrorState}. 6932 * 6933 * <p>For the global area ID (0), the {@link 6934 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 6935 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 6936 * from {@link android.car.hardware.property.HandsOnDetectionWarning} and {@link 6937 * android.car.hardware.property.ErrorState} are supported. 6938 * 6939 * <p>Property Config: 6940 * <ul> 6941 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6942 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6943 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6944 * <li>{@code Integer} property type 6945 * </ul> 6946 * 6947 * <p>Required Permission: 6948 * <ul> 6949 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_DRIVER_MONITORING_STATES} to 6950 * read property. 6951 * <li>Property is not writable. 6952 * </ul> 6953 * 6954 * @data_enum {@link HandsOnDetectionWarning} 6955 * @data_enum {@link ErrorState} 6956 * 6957 * @hide 6958 */ 6959 @SystemApi 6960 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DRIVER_MONITORING_STATES)) 6961 public static final int HANDS_ON_DETECTION_WARNING = 289411096; 6962 6963 /** 6964 * Enable or disable driver drowsiness and attention monitoring. 6965 * 6966 * <p>Set true to enable driver drowsiness and attention monitoring and false to disable driver 6967 * drowsiness and attention monitoring. When driver drowsiness and attention monitoring is 6968 * enabled, a system inside the vehicle will monitor the drowsiness and attention level of the 6969 * driver and warn the driver if needed. 6970 * 6971 * <p>Property Config: 6972 * <ul> 6973 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 6974 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 6975 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 6976 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 6977 * <li>{@code Boolean} property type 6978 * </ul> 6979 * 6980 * <p>Required Permissions: 6981 * <ul> 6982 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_DRIVER_MONITORING_SETTINGS} 6983 * or Signature|Privileged permission {@link 6984 * Car#PERMISSION_CONTROL_DRIVER_MONITORING_SETTINGS} to read property. 6985 * <li>Signature|Privileged permission {@link 6986 * Car#PERMISSION_CONTROL_DRIVER_MONITORING_SETTINGS} to write property. 6987 * </ul> 6988 * 6989 * @hide 6990 */ 6991 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 6992 @SystemApi 6993 @RequiresPermission.Read(@RequiresPermission(anyOf = { 6994 Car.PERMISSION_READ_DRIVER_MONITORING_SETTINGS, 6995 Car.PERMISSION_CONTROL_DRIVER_MONITORING_SETTINGS})) 6996 @RequiresPermission.Write(@RequiresPermission( 6997 Car.PERMISSION_CONTROL_DRIVER_MONITORING_SETTINGS)) 6998 public static final int DRIVER_DROWSINESS_ATTENTION_SYSTEM_ENABLED = 287313945; 6999 7000 /** 7001 * Driver drowsiness and attention level state. 7002 * 7003 * <p>Returns the current detected state of driver drowiness and attention level based on the 7004 * Karolinska Sleepiness Scale (KSS). 7005 * 7006 * <p>Generally, this property should return a valid state defined in the {@link 7007 * android.car.hardware.property.DriverDrowsinessAttentionState} or {@link 7008 * android.car.hardware.property.ErrorState}. For example, if the feature is not available due 7009 * to some temporary state, that information should be conveyed through {@link 7010 * android.car.hardware.property.ErrorState}. 7011 * 7012 * <p>If the vehicle is sending a warning to the user because the driver is too drowsy, the 7013 * warning should be surfaced through {@link #DRIVER_DROWSINESS_ATTENTION_WARNING}. 7014 * 7015 * <p>For the global area ID (0), the {@link 7016 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 7017 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 7018 * from {@link android.car.hardware.property.DriverDrowsinessAttentionState} and {@link 7019 * android.car.hardware.property.ErrorState} are supported. 7020 * 7021 * <p>Property Config: 7022 * <ul> 7023 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 7024 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 7025 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 7026 * <li>{@code Integer} property type 7027 * </ul> 7028 * 7029 * <p>Required Permission: 7030 * <ul> 7031 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_DRIVER_MONITORING_STATES} to 7032 * read property. 7033 * <li>Property is not writable. 7034 * </ul> 7035 * 7036 * @data_enum {@link DriverDrowsinessAttentionState} 7037 * @data_enum {@link ErrorState} 7038 * 7039 * @hide 7040 */ 7041 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 7042 @SystemApi 7043 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DRIVER_MONITORING_STATES)) 7044 public static final int DRIVER_DROWSINESS_ATTENTION_STATE = 289411098; 7045 7046 /** 7047 * Enable or disable driver drowsiness and attention warnings. 7048 * 7049 * <p>Set true to enable driver drowsiness and attention warnings and false to disable driver 7050 * drowsiness and attention warnings. When driver drowsiness and attention warnings are enabled, 7051 * the driver drowsiness and attention monitoring system inside the vehicle should warn the 7052 * driver when it detects the driver is drowsy or not attentive. 7053 * 7054 * <p>Property Config: 7055 * <ul> 7056 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 7057 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 7058 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 7059 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 7060 * <li>{@code Boolean} property type 7061 * </ul> 7062 * 7063 * <p>Required Permissions: 7064 * <ul> 7065 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_DRIVER_MONITORING_SETTINGS} 7066 * or Signature|Privileged permission {@link 7067 * Car#PERMISSION_CONTROL_DRIVER_MONITORING_SETTINGS} to read property. 7068 * <li>Signature|Privileged permission {@link 7069 * Car#PERMISSION_CONTROL_DRIVER_MONITORING_SETTINGS} to write property. 7070 * </ul> 7071 * 7072 * @hide 7073 */ 7074 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 7075 @SystemApi 7076 @RequiresPermission.Read(@RequiresPermission(anyOf = { 7077 Car.PERMISSION_READ_DRIVER_MONITORING_SETTINGS, 7078 Car.PERMISSION_CONTROL_DRIVER_MONITORING_SETTINGS})) 7079 @RequiresPermission.Write(@RequiresPermission( 7080 Car.PERMISSION_CONTROL_DRIVER_MONITORING_SETTINGS)) 7081 public static final int DRIVER_DROWSINESS_ATTENTION_WARNING_ENABLED = 287313947; 7082 7083 /** 7084 * Driver drowsiness and attention warning. 7085 * 7086 * <p>Returns whether a warning is being sent to the driver for being drowsy or not attentive. 7087 * 7088 * <p>Generally, this property should return a valid state defined in the {@link 7089 * android.car.hardware.property.DriverDrowsinessAttentionWarning} or {@link 7090 * android.car.hardware.property.ErrorState}. For example, if the feature is not available due 7091 * to some temporary state, that information should be conveyed through an {@link 7092 * android.car.hardware.property.ErrorState}. 7093 * 7094 * <p>For the global area ID (0), the {@link 7095 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 7096 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 7097 * from {@link android.car.hardware.property.DriverDrowsinessAttentionWarning} and {@link 7098 * android.car.hardware.property.ErrorState} are supported. 7099 * 7100 * <p>Property Config: 7101 * <ul> 7102 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 7103 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 7104 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 7105 * <li>{@code Integer} property type 7106 * </ul> 7107 * 7108 * <p>Required Permission: 7109 * <ul> 7110 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_DRIVER_MONITORING_STATES} to 7111 * read property. 7112 * <li>Property is not writable. 7113 * </ul> 7114 * 7115 * @data_enum {@link DriverDrowsinessAttentionWarning} 7116 * @data_enum {@link ErrorState} 7117 * 7118 * @hide 7119 */ 7120 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 7121 @SystemApi 7122 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DRIVER_MONITORING_STATES)) 7123 public static final int DRIVER_DROWSINESS_ATTENTION_WARNING = 289411100; 7124 7125 /** 7126 * Enable or disable driver distraction monitoring. 7127 * 7128 * <p>Set true to enable driver distraction monitoring and false to disable driver distraction 7129 * monitoring. When driver distraction monitoring is enabled, a system inside the vehicle should 7130 * be monitoring the distraction level of the driver and warn the driver if needed. 7131 * 7132 * <p>Property Config: 7133 * <ul> 7134 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 7135 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 7136 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 7137 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 7138 * <li>{@code Boolean} property type 7139 * </ul> 7140 * 7141 * <p>Required Permissions: 7142 * <ul> 7143 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_DRIVER_MONITORING_SETTINGS} 7144 * or Signature|Privileged permission {@link 7145 * Car#PERMISSION_CONTROL_DRIVER_MONITORING_SETTINGS} to read property. 7146 * <li>Signature|Privileged permission {@link 7147 * Car#PERMISSION_CONTROL_DRIVER_MONITORING_SETTINGS} to write property. 7148 * </ul> 7149 * 7150 * @hide 7151 */ 7152 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 7153 @SystemApi 7154 @RequiresPermission.Read(@RequiresPermission(anyOf = { 7155 Car.PERMISSION_READ_DRIVER_MONITORING_SETTINGS, 7156 Car.PERMISSION_CONTROL_DRIVER_MONITORING_SETTINGS})) 7157 @RequiresPermission.Write(@RequiresPermission( 7158 Car.PERMISSION_CONTROL_DRIVER_MONITORING_SETTINGS)) 7159 public static final int DRIVER_DISTRACTION_SYSTEM_ENABLED = 287313949; 7160 7161 /** 7162 * Driver distraction state. 7163 * 7164 * <p>Returns the current detected driver distraction state. 7165 * 7166 * <p>Generally, this property should return a valid state defined in the {@link 7167 * android.car.hardware.property.DriverDistractionState} or {@link 7168 * android.car.hardware.property.ErrorState}. For example, if the feature is not available due 7169 * to some temporary state, that information should be conveyed through {@link 7170 * android.car.hardware.property.ErrorState}. 7171 * 7172 * <p>If the vehicle is sending a warning to the user because the driver is too distracted, the 7173 * warning should be surfaced through {@link #DRIVER_DISTRACTION_WARNING}. 7174 * 7175 * <p>For the global area ID (0), the {@link 7176 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 7177 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 7178 * from {@link android.car.hardware.property.DriverDistractionState} and {@link 7179 * android.car.hardware.property.ErrorState} are supported. 7180 * 7181 * <p>Property Config: 7182 * <ul> 7183 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 7184 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 7185 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 7186 * <li>{@code Integer} property type 7187 * </ul> 7188 * 7189 * <p>Required Permission: 7190 * <ul> 7191 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_DRIVER_MONITORING_STATES} to 7192 * read property. 7193 * <li>Property is not writable. 7194 * </ul> 7195 * 7196 * @data_enum {@link DriverDistractionState} 7197 * @data_enum {@link ErrorState} 7198 * 7199 * @hide 7200 */ 7201 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 7202 @SystemApi 7203 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DRIVER_MONITORING_STATES)) 7204 public static final int DRIVER_DISTRACTION_STATE = 289411102; 7205 7206 /** 7207 * Enable or disable driver distraction warnings. 7208 * 7209 * <p>Set true to enable driver distraction warnings and false to disable driver distraction 7210 * warnings. When driver distraction warnings are enabled, the driver distraction monitoring 7211 * system inside the vehicle should warn the driver when it detects the driver is distracted. 7212 * 7213 * <p>Property Config: 7214 * <ul> 7215 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 7216 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 7217 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 7218 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 7219 * <li>{@code Boolean} property type 7220 * </ul> 7221 * 7222 * <p>Required Permissions: 7223 * <ul> 7224 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_DRIVER_MONITORING_SETTINGS} 7225 * or Signature|Privileged permission {@link 7226 * Car#PERMISSION_CONTROL_DRIVER_MONITORING_SETTINGS} to read property. 7227 * <li>Signature|Privileged permission {@link 7228 * Car#PERMISSION_CONTROL_DRIVER_MONITORING_SETTINGS} to write property. 7229 * </ul> 7230 * 7231 * @hide 7232 */ 7233 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 7234 @SystemApi 7235 @RequiresPermission.Read(@RequiresPermission(anyOf = { 7236 Car.PERMISSION_READ_DRIVER_MONITORING_SETTINGS, 7237 Car.PERMISSION_CONTROL_DRIVER_MONITORING_SETTINGS})) 7238 @RequiresPermission.Write(@RequiresPermission( 7239 Car.PERMISSION_CONTROL_DRIVER_MONITORING_SETTINGS)) 7240 public static final int DRIVER_DISTRACTION_WARNING_ENABLED = 287313951; 7241 7242 /** 7243 * Driver distraction warning. 7244 * 7245 * <p>Returns whether a warning is being sent to the driver for being distracted. 7246 * 7247 * <p>Generally, this property should return a valid state defined in the {@link 7248 * android.car.hardware.property.DriverDistractionWarning} or {@link 7249 * android.car.hardware.property.ErrorState}. For example, if the feature is not available due 7250 * to some temporary state, that information should be conveyed through an {@link 7251 * android.car.hardware.property.ErrorState}. 7252 * 7253 * <p>For the global area ID (0), the {@link 7254 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 7255 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 7256 * from {@link android.car.hardware.property.DriverDistractionWarning} and {@link 7257 * android.car.hardware.property.ErrorState} are supported. 7258 * 7259 * <p>Property Config: 7260 * <ul> 7261 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 7262 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 7263 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 7264 * <li>{@code Integer} property type 7265 * </ul> 7266 * 7267 * <p>Required Permission: 7268 * <ul> 7269 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_DRIVER_MONITORING_STATES} to 7270 * read property. 7271 * <li>Property is not writable. 7272 * </ul> 7273 * 7274 * @data_enum {@link DriverDistractionWarning} 7275 * @data_enum {@link ErrorState} 7276 * 7277 * @hide 7278 */ 7279 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 7280 @SystemApi 7281 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DRIVER_MONITORING_STATES)) 7282 public static final int DRIVER_DISTRACTION_WARNING = 289411104; 7283 /** 7284 * Enable or disable Low Speed Collision Warning. 7285 * 7286 * <p>Returns true if low speed collision warning is enabled and false if low speed collision 7287 * warning is disabled. When low speed collision warning is enabled, the ADAS system in the 7288 * vehicle will warn the driver of potential collisions at low speeds. This property is 7289 * different from the pre-existing {@link VehiclePropertyIds#FORWARD_COLLISION_WARNING_ENABLED}, 7290 * which applies to higher speed applications only. If the vehicle doesn't have a separate 7291 * collision detection system for low speed environments, this property will not be implemented. 7292 * 7293 * <p>This property is defined as read_write, but OEMs have the option to implement it as read 7294 * only. 7295 * 7296 * <p>Property Config: 7297 * <ul> 7298 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 7299 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 7300 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 7301 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 7302 * <li>{@code Boolean} property type 7303 * </ul> 7304 * 7305 * <p>Required Permissions: 7306 * <ul> 7307 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_SETTINGS} or 7308 * Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to read 7309 * property. 7310 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to write 7311 * property. 7312 * </ul> 7313 * 7314 * @hide 7315 */ 7316 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 7317 @SystemApi 7318 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_READ_ADAS_SETTINGS, 7319 Car.PERMISSION_CONTROL_ADAS_SETTINGS})) 7320 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ADAS_SETTINGS)) 7321 public static final int LOW_SPEED_COLLISION_WARNING_ENABLED = 287313953; 7322 7323 /** 7324 * Low Speed Collision Warning State state. 7325 * 7326 * <p>Returns the current state of Low Speed Collision Warning. This property will always return 7327 * a valid state defined in {@link android.car.hardware.property.LowSpeedCollisionWarningState} 7328 * or {@link android.car.hardware.property.ErrorState}. This property is different from the 7329 * pre-existing {@link VehiclePropertyIds#FORWARD_COLLISION_WARNING_ENABLED}, which applies to 7330 * higher speed applications only. If the vehicle doesn't have a separate collision detection 7331 * system for low speed environments, this property will not be implemented. 7332 * 7333 * <p>For the global area ID (0), the {@link 7334 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 7335 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 7336 * from {@link android.car.hardware.property.LowSpeedCollisionWarningState} and {@link 7337 * android.car.hardware.property.ErrorState} are supported. 7338 * 7339 * <p>Property Config: 7340 * <ul> 7341 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 7342 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 7343 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 7344 * <li>{@code Integer} property type 7345 * </ul> 7346 * 7347 * <p>Required Permission: 7348 * <ul> 7349 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_STATES} to read 7350 * property. 7351 * <li>Property is not writable. 7352 * </ul> 7353 * 7354 * @data_enum {@link android.car.hardware.property.LowSpeedCollisionWarningState} 7355 * @data_enum {@link ErrorState} 7356 * 7357 * @hide 7358 */ 7359 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 7360 @SystemApi 7361 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_ADAS_STATES)) 7362 public static final int LOW_SPEED_COLLISION_WARNING_STATE = 289411106; 7363 7364 /** 7365 * Enable or disable Cross Traffic Monitoring. 7366 * 7367 * <p>Returns true if Cross Traffic Monitoring is enabled and false if Cross Traffic Monitoring 7368 * is disabled. When Cross Traffic Monitoring is enabled, the ADAS system in the vehicle should 7369 * be turned on and monitoring for potential sideways collisions. 7370 * 7371 * <p>This property is defined as read_write, but OEMs have the option to implement it as read 7372 * only. 7373 * 7374 * <p>Property Config: 7375 * <ul> 7376 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 7377 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 7378 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 7379 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 7380 * <li>{@code Boolean} property type 7381 * </ul> 7382 * 7383 * <p>Required Permissions: 7384 * <ul> 7385 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_SETTINGS} or 7386 * Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to read 7387 * property. 7388 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to write 7389 * property. 7390 * </ul> 7391 * 7392 * @hide 7393 */ 7394 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 7395 @SystemApi 7396 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_READ_ADAS_SETTINGS, 7397 Car.PERMISSION_CONTROL_ADAS_SETTINGS})) 7398 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ADAS_SETTINGS)) 7399 public static final int CROSS_TRAFFIC_MONITORING_ENABLED = 287313955; 7400 7401 /** 7402 * Cross Traffic Monitoring Warning state. 7403 * 7404 * <p>Returns the current state of Cross Traffic Monitoring Warning. This property will always 7405 * return a valid state defined in {@link 7406 * android.car.hardware.property.CrossTrafficMonitoringWarningState} or {@link 7407 * android.car.hardware.property.ErrorState}. 7408 * 7409 * <p>For the global area ID (0), the {@link 7410 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 7411 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 7412 * from {@link android.car.hardware.property.CrossTrafficMonitoringWarningState} and {@link 7413 * android.car.hardware.property.ErrorState} are supported. 7414 * 7415 * <p>Property Config: 7416 * <ul> 7417 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 7418 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 7419 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 7420 * <li>{@code Integer} property type 7421 * </ul> 7422 * 7423 * <p>Required Permission: 7424 * <ul> 7425 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_STATES} to read 7426 * property. 7427 * <li>Property is not writable. 7428 * </ul> 7429 * 7430 * @data_enum {@link android.car.hardware.property.CrossTrafficMonitoringWarningState} 7431 * @data_enum {@link ErrorState} 7432 * 7433 * @hide 7434 */ 7435 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 7436 @SystemApi 7437 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_ADAS_STATES)) 7438 public static final int CROSS_TRAFFIC_MONITORING_WARNING_STATE = 289411108; 7439 7440 /** 7441 * Enable or disable Low Speed Automatic Emergency Braking. 7442 * 7443 * <p>Returns true if Low Speed Automatic Emergency Braking is enabled or false if Low Speed 7444 * Automatic Emergency Braking is disabled. When Low Speed Automatic Emergency Braking is 7445 * enabled, the ADAS system in the vehicle will be turned on and monitoring to avoid potential 7446 * collisions in low speed conditions. This property is different from the pre-existing 7447 * AUTOMATIC_EMERGENCY_BRAKING_ENABLED, which should apply to higher speed applications only. If 7448 * the vehicle doesn't have a separate collision avoidance system for low speed environments, 7449 * this property will not be implemented. 7450 * 7451 * <p>This property is defined as read_write, but OEMs have the option to implement it as read 7452 * only. 7453 * 7454 * <p>Property Config: 7455 * <ul> 7456 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE} or 7457 * {@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 7458 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 7459 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 7460 * <li>{@code Boolean} property type 7461 * </ul> 7462 * 7463 * <p>Required Permissions: 7464 * <ul> 7465 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_SETTINGS} or 7466 * Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to read 7467 * property. 7468 * <li>Signature|Privileged permission {@link Car#PERMISSION_CONTROL_ADAS_SETTINGS} to write 7469 * property. 7470 * </ul> 7471 * 7472 * @hide 7473 */ 7474 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 7475 @SystemApi 7476 @RequiresPermission.Read(@RequiresPermission(anyOf = {Car.PERMISSION_READ_ADAS_SETTINGS, 7477 Car.PERMISSION_CONTROL_ADAS_SETTINGS})) 7478 @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ADAS_SETTINGS)) 7479 public static final int LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED = 287313957; 7480 7481 /** 7482 * Low Speed Automatic Emergency Braking state. 7483 * 7484 * <p>Returns the current state of Low Speed Automatic Emergency Braking. This property will 7485 * always return a valid state defined in {@link 7486 * android.car.hardware.property.LowSpeedAutomaticEmergencyBrakingState} or {@link 7487 * android.car.hardware.property.ErrorState}. 7488 * 7489 * <p>If Low Speed Automatic Emergency Braking includes collision warnings before activating the 7490 * brakes, those warnings will be surfaced through use of {@link 7491 * android.car.VehiclePropertyIds#LOW_SPEED_COLLISION_WARNING_ENABLED} and {@link 7492 * android.car.VehiclePropertyIds#LOW_SPEED_COLLISION_WARNING_STATE}. 7493 * 7494 * <p>For the global area ID (0), the {@link 7495 * android.car.hardware.property.AreaIdConfig#getSupportedEnumValues()} array obtained from 7496 * {@link android.car.hardware.CarPropertyConfig#getAreaIdConfig(int)} specifies which states 7497 * from {@link android.car.hardware.property.LowSpeedAutomaticEmergencyBrakingState} and {@link 7498 * android.car.hardware.property.ErrorState} are supported. 7499 * 7500 * <p>Property Config: 7501 * <ul> 7502 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ} 7503 * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL} 7504 * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE} 7505 * <li>{@code Integer} property type 7506 * </ul> 7507 * 7508 * <p>Required Permission: 7509 * <ul> 7510 * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ADAS_STATES} to read 7511 * property. 7512 * <li>Property is not writable. 7513 * </ul> 7514 * 7515 * @data_enum {@link android.car.hardware.property.LowSpeedAutomaticEmergencyBrakingState} 7516 * @data_enum {@link ErrorState} 7517 * 7518 * @hide 7519 */ 7520 @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES) 7521 @SystemApi 7522 @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_ADAS_STATES)) 7523 public static final int LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE = 289411110; 7524 7525 /** 7526 * @deprecated to prevent others from instantiating this class 7527 */ 7528 @Deprecated 7529 @ExcludeFromCodeCoverageGeneratedReport(reason = BOILERPLATE_CODE) VehiclePropertyIds()7530 public VehiclePropertyIds() { 7531 } 7532 7533 /** 7534 * Gets a user-friendly representation of a property. 7535 */ toString(int propertyId)7536 public static String toString(int propertyId) { 7537 return isDefined(propertyId) ? toName(propertyId) : "0x" + Integer.toHexString(propertyId); 7538 } 7539 } 7540