Начиная с 27 марта 2025 г. мы рекомендуем использовать android-latest-release
вместо aosp-main
для создания и участия в AOSP. Дополнительные сведения см. в разделе Изменения в AOSP .
Конфигурации недвижимости
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Каждое поддерживаемое свойство указывается конфигурацией свойства, определенной через структуру VehiclePropConfig
, и имеет следующие поля.
Поле | Описание | prop | Идентификатор свойства. Это должно быть либо одно из определенных системных свойств из VehicleProperty.aidl , либо свойство поставщика. Идентификатор свойства формируется с помощью битового ИЛИ следующих полей (справа налево): - (0x0000 0000 ) 16 бит: уникальный идентификатор из диапазона 0x0100 - 0xffff.
- (0x00 00 0000) 8 бит: Типы свойств , определяющие тип свойства.
- (0x0 0 000000) 4 бита: Типы областей .
- (0x 0 0000000) 4 бита:
VehiclePropertyGroup Это либо SYSTEM (0x10000000), либо VENDOR (0x20000000). См. Vendor Properties для свойств, которые можно настроить.
Например, INFO_VIN (0x11100100) = UniqueID (0x00000100) | VehiclePropertyType.STRING (0x00100000) | VehicleArea.GLOBAL (0x01000000) | VehiclePropertyGroup.SYSTEM (0x10000000) |
access | - Режим доступа к свойству. Должен быть одним из
READ , WRITE или READ_WRITE . - Для системных свойств это должен быть один из определенных режимов доступа, задокументированных в
VehicleProperty.aidl . - Для свойств, имеющих доступ по областям, это максимальное подмножество доступа по областям, например, если свойства имеют две области с доступом
READ и READ_WRITE , это должно быть установлено на READ .
|
changeMode | - Режим изменения свойства. Должен быть одним из
STATIC , ON_CHANGE или CONTINUOUS . STATIC означает, что значение свойства никогда не изменяется после загрузки системы. ON_CHANGE означает, что VHAL должен сообщать об изменении значения. CONTINUOUS означает, что значение свойства изменяется непрерывно, и VHAL должен сообщать на основе частоты выборки подписки. - Для свойств системы это должно быть равно режиму изменения, описанному в
VehicleProperty.aidl .
|
configArray | Необязательный массив для хранения конфигурации, специфичной для свойств. Может быть пустым. Для некоторых системных свойств, например, GEAR_SELECTION , массив конфигурации имеет особое значение и должен быть указан. |
configString | Необязательная строка, содержащая конфигурацию конкретного свойства. Может быть пустой. |
minSampleRate и maxSampleRate | Минимальная и максимальная поддерживаемая частота дискретизации для непрерывного свойства (в герцах). Не используется, если свойство не непрерывное. minSampleRate и maxSampleRate должны быть достижимы реализацией VHAL. Не все частоты дискретизации между минимальной и максимальной должны поддерживаться. |
Типы недвижимости
Определены как перечисления в VehiclePropertyType.aidl
. Поддерживаемые типы свойств перечислены в следующей таблице.
Тип недвижимости | Ценить | Описание | STRING | 0x00100000 | Строковое свойство, использует поле stringValue в значении свойства Vehicle . |
BOOLEAN | 0x00200000 | Boolean свойство, использует первый элемент в поле int32Values в значении свойства Vehicle . 0 означает false , None 0 означает true . |
INT32 | 0x00400000 | Integer свойство, использует первый элемент в поле int32Values в значении свойства Vehicle . |
INT32_VEC | 0x00410000 | Свойство Integer[] использует элементы в поле int32Values в значении свойства Vehicle . |
INT64 | 0x00500000 | Длинное свойство, использует первый элемент в поле int64Values в значении свойства Vehicle . |
INT64_VEC | 0x00510000 | Свойство Long[] , использует элементы в поле int64Values в значении свойства Vehicle . |
FLOAT | 0x00600000 | Свойство Float , использует первый элемент в поле floatValues в значении свойства Vehicle . |
FLOAT_VEC | 0x00610000 | Свойство Float[] использует элементы в поле floatValues в значении свойства Vehicle . |
BYTES | 0x00700000 | Свойство byte[] использует элементы в поле byteValues в значении свойства Vehicle . |
MIXED | 0x00e00000 | Свойство смешанного типа. Любая комбинация скалярных или векторных типов. Точный формат должен быть указан в массиве конфигурации в конфигурации свойства. Для свойств типа MIXED поставщика configArray необходимо отформатировать в следующей структуре: -
configArray[0] , 1 указывает, что свойство имеет String значение -
configArray[1] , 1 указывает, что свойство имеет Boolean значение -
configArray[2] , 1 указывает, что свойство имеет Integer значение -
configArray[3] , число указывает размер Integer[] в свойстве -
configArray[4] , 1 указывает, что свойство имеет Long значение -
configArray[5] , число указывает размер Long[] в свойстве -
configArray[6] , 1 указывает, что свойство имеет значение Float -
configArray[7] , число указывает размер Float[] в свойстве -
configArray[8] , число указывает размер byte[] в свойстве.
Например, configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0} указывает, что свойство имеет String значение, Boolean значение, Integer значение и массив из трех целых чисел. |
Конфигурация идентификатора области
Каждая конфигурация свойства также может содержать список конфигураций идентификаторов областей. Этот список необязателен для глобальных свойств и обязателен для зонированных свойств (свойств с несколькими поддерживаемыми областями). Каждая конфигурация идентификатора области имеет следующие поля.
Поле | Описание | areaId | Идентификатор этой области. См. Идентификаторы областей . |
minInt32Value и maxInt32Value | - Необязательное минимальное и максимальное значение для свойств типа INT32 во время загрузки. Для всех остальных типов должно быть 0. Игнорируется, если оба равны 0.
- Для глобального свойства, если необходимо определить минимальное и максимальное значение, необходимо использовать одну конфигурацию области с идентификатором области 0.
- Это значение статическое и не изменится, даже если минимальное или максимальное значение изменится во время выполнения. Реализуйте
IVehicle#getMinMaxSupportedValue для динамического минимального или максимального значения.
|
minInt64Value и maxInt64Value | - Необязательное минимальное и максимальное значение для свойств типа INT64 во время загрузки. Для всех остальных типов должно быть 0. Игнорируется, если оба равны 0.
- Для глобального свойства, если необходимо определить минимальное и максимальное значение, необходимо использовать одну конфигурацию области с идентификатором области 0.
- Это значение статическое и не изменится, даже если минимальное или максимальное значение изменится во время выполнения. Реализуйте
IVehicle#getMinMaxSupportedValue для динамического минимального или максимального значения.
|
minFloatValue и maxFloatValue | - Необязательное минимальное и максимальное значение для свойств типа Float во время загрузки. Для всех других типов должно быть 0. Игнорируется, если оба равны 0.0.
- Для глобального свойства, если необходимо определить минимальное и максимальное значение, необходимо использовать одну конфигурацию области с идентификатором области 0.
- Это значение статическое и не изменится, даже если минимальное или максимальное значение изменится во время выполнения. Реализуйте
IVehicle#getMinMaxSupportedValue для динамического минимального или максимального значения.
|
( Новое в Android 14 ) supportedEnumValues | - Необязательный список поддерживаемых значений во время загрузки, если свойство определено как свойство типа enum. Если не указано (пусто) или до Android 14, предполагается, что поддерживаются все значения enum.
- Для глобального свойства, если необходимо определить поддерживаемые значения перечисления, необходимо использовать одну конфигурацию области с идентификатором области 0.
- Это значение статическое и не изменится, даже если поддерживаемые значения изменятся во время выполнения. Реализуйте
IVehicle#getSupportedValuesLists для динамических поддерживаемых значений. - Это применимо только к свойствам типа enum. Для других типов это поле должно быть пустым. Чтобы предоставить поддерживаемые значения для других неперечислимых типов, используйте
IVehicle#getSupportedValuesLists .
|
( Новое в Android 15 ) supportVariableUpdateRate | - Поддерживается ли переменная скорость обновления. Это применимо только к непрерывным свойствам.
- Если это
true , приложение может включить переменную частоту обновления для подписки, чтобы получать события обновления свойств только при изменении значения свойства (что рассматривает непрерывные свойства как свойства, изменяющиеся при изменении). - Если все подписчики на свойство включают переменную частоту обновления, запрос на подписку к VHAL включает переменную частоту обновления для свойства, и VHAL должен отправлять события обновления свойства только при изменении его значения.
- Если какой-либо подписчик запрашивает фиксированную частоту обновления, запрос на подписку к VHAL отключает переменную частоту обновления для свойства, а AAOS отфильтровывает дублирующиеся события для клиентов, запрашивающих переменную частоту обновления.
- НАСТОЯТЕЛЬНО РЕКОМЕНДУЕТСЯ поддерживать переменную частоту обновления для всех непрерывных свойств, не относящихся к тактовому импульсу, для повышения производительности, если только данные свойств не являются большими (например, массив байтов размером 1 КБ) и не могут занимать большой объем памяти для кэширования.
|
( Новое в Android 16 ) hasSupportedValueInfo | - Если не равно
null , показывает, указывает ли это свойство минимальные или максимальные поддерживаемые значения или список поддерживаемых значений. - Это поле определяет, поддерживаются ли динамические поддерживаемые значения API:
getMinMaxSupportedValue , getSupportedValuesLists , subscribeSupportedValueChange , unsubscribeSupportedValueChange для этого идентификатора свойства и идентификатора области. - Если значение не равно
null , VHAL должен реализовать эти API для этого идентификатора свойства и идентификатора области. - Если
null или в Android 15 или ниже, динамические поддерживаемые значения для этого идентификатора свойства и идентификатора области не поддерживаются. Клиент должен использовать информацию о статическом поддерживаемом значении, предоставленную в конфигурации свойства транспортного средства.
|
Типы площадей
Определены как перечисления в VehicleArea.aidl
. Поддерживаемые типы областей перечислены ниже.
Тип площади | Ценить | Описание | ГЛОБАЛЬНЫЙ | 0x01000000 | Данный объект недвижимости является глобальным и не имеет нескольких областей. |
ОКНО | 0x03000000 | Область основана на окнах, использует перечисление VehicleAreaWindow . |
ЗЕРКАЛО | 0x04000000 | Площадь на основе зеркал, использует перечисление VehicleAreaMirror . |
СИДЕНЬЕ | 0x05000000 | Площадь определяется по количеству мест, используется перечисление VehicleAreaSeat . |
ДВЕРЬ | 0x06000000 | Площадь на основе дверей, использует перечисление VehicleAreaDoor . |
КОЛЕСО | 0x07000000 | Площадь основана на колесах, используется перечисление VehicleAreaWheel . |
Каждое зонированное свойство должно использовать предопределенный тип области. Каждый тип области имеет набор битовых флагов, определенных в перечислении для типа области. Например, область SEAT определяет перечисления VehicleAreaSeat
:
-
ROW_1_LEFT = 0x0001
-
ROW_1_CENTER = 0x0002
-
ROW_1_RIGHT = 0x0004
-
ROW_2_LEFT = 0x0010
-
ROW_2_CENTER = 0x0020
-
ROW_2_RIGHT = 0x0040
-
ROW_3_LEFT = 0x0100
-
...
Идентификаторы областей
Зонированные свойства адресуются через идентификаторы областей. Каждое зонированное свойство может поддерживать один или несколько идентификаторов областей. Идентификатор области состоит из одного или нескольких флагов из соответствующего перечисления. Например, свойство, использующее VehicleAreaSeat
, может использовать следующие идентификаторы областей:
Элемент | Описание | ROW_1_LEFT | ROW_1_RIGHT | Идентификатор зоны применяется к обоим передним сиденьям. |
ROW_2_LEFT | Применимо только к заднему левому сиденью. |
ROW_2_RIGHT | Применимо только к заднему правому сиденью. |
Чтобы узнать больше, см. раздел HVAC .
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-06-12 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-06-12 UTC."],[],[]]