Ab dem 27. März 2025 empfehlen wir, android-latest-release
anstelle von aosp-main
zu verwenden, um AOSP zu erstellen und Beiträge dazu zu leisten. Weitere Informationen finden Sie unter Änderungen am AOSP.
Property-Konfigurationen
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Jede unterstützte Property wird durch eine Property-Konfiguration angegeben, die über die Struktur VehiclePropConfig
definiert ist. Sie enthält die folgenden Felder.
Feld |
Beschreibung |
---|
prop |
Die Property-ID. Dies muss entweder eine der definierten Systemeigenschaften aus VehicleProperty.aidl oder eine Anbietereigenschaft sein. Die Property-ID wird durch Bitvektor-ODER der folgenden Felder erstellt (von rechts nach links):
- (0x00000000) 16 Bit: Eine eindeutige ID aus dem Bereich 0x0100–0xffff.
- (0x00000000) 8 Bit: Property-Typen, die den Typ der Property definieren.
- (0x00000000) 4 Bit: Flächentypen.
- (0x00000000) 4 Bit:
VehiclePropertyGroup Dies ist entweder SYSTEM (0x10000000) oder VENDOR (0x20000000). Unter Anbietereigenschaften finden Sie Informationen zu Attributen, die Sie anpassen können.
Beispiel:
INFO_VIN (0x11100100) = UniqueID (0x00000100) | VehiclePropertyType.STRING (0x00100000) | VehicleArea.GLOBAL (0x01000000) | VehiclePropertyGroup.SYSTEM (0x10000000)
|
access |
- Der Zugriffsmodus für die Property. Muss
READ , WRITE oder READ_WRITE sein.
- Bei Systemeigenschaften muss dies einer der in
VehicleProperty.aidl dokumentierten Zugriffsmodi sein.
- Bei Properties mit standortspezifischen Zugriffsrechten ist dies die maximale Teilmenge des standortspezifischen Zugriffs. Wenn die Properties beispielsweise zwei Bereiche mit den Zugriffsrechten
READ und READ_WRITE haben, sollte dieser Wert auf READ festgelegt werden.
|
changeMode |
- Modus für die Property ändern. Muss
STATIC , ON_CHANGE oder CONTINUOUS sein. STATIC bedeutet, dass sich der Attributwert nach einem Systemstart nie ändert. ON_CHANGE bedeutet, dass die VHAL melden muss, wenn sich der Wert ändert. CONTINUOUS bedeutet, dass sich der Property-Wert kontinuierlich ändert und VHAL basierend auf der Abo-Stichprobenrate melden muss.
- Bei Systemeigenschaften muss dies dem in
VehicleProperty.aidl dokumentierten Änderungsmodus entsprechen.
|
configArray |
Ein optionales Array für die standortspezifische Konfiguration. Kann leer sein. Für bestimmte Systemeigenschaften, z. B. GEAR_SELECTION , hat das config-Array eine spezielle Bedeutung und muss angegeben werden.
|
configString |
Optionaler String, der eine standortspezifische Konfiguration enthält. Kann leer sein. |
minSampleRate und maxSampleRate |
Die minimale und maximale unterstützte Abtastrate für kontinuierliche Eigenschaften (in Hertz). Wird nicht verwendet, wenn die Property nicht kontinuierlich ist. minSampleRate und maxSampleRate müssen mit der VHAL-Implementierung erreichbar sein. Nicht alle Abtastrate zwischen Minimum und Maximum müssen unterstützt werden. |
Immobilienarten
In VehiclePropertyType.aidl
als Enumerationen definiert. Die unterstützten Property-Typen sind in der folgenden Tabelle aufgeführt.
Property-Typ |
Wert |
Beschreibung |
---|
STRING |
0x00100000 |
Stringeigenschaft, für die das Feld stringValue in Wert der Fahrzeugeigenschaft verwendet wird. |
BOOLEAN |
0x00200000 |
Für die Boolean -Property wird das erste Element im Feld int32Values im Wert der Fahrzeugeigenschaft verwendet.
0 bedeutet false , None 0 bedeutet true . |
INT32 |
0x00400000 |
Für die Integer -Property wird das erste Element im Feld int32Values im Wert der Fahrzeugeigenschaft verwendet. |
INT32_VEC |
0x00410000 |
Integer[] -Property werden die Elemente im Feld int32Values in Wert der Fahrzeugeigenschaft verwendet. |
INT64 |
0x00500000 |
Lange Property, für die das erste Element im Feld int64Values in Wert der Fahrzeugeigenschaft verwendet wird. |
INT64_VEC |
0x00510000 |
Für die Property Long[] werden die Elemente im Feld int64Values im Wert für Fahrzeugeigenschaft verwendet. |
FLOAT |
0x00600000 |
Für die Float -Property wird das erste Element im Feld floatValues im Wert der Fahrzeugeigenschaft verwendet. |
FLOAT_VEC |
0x00610000 |
Für die Property Float[] werden die Elemente im Feld floatValues im Wert für Fahrzeugeigenschaft verwendet. |
BYTES |
0x00700000 |
Für die Property byte[] werden die Elemente im Feld byteValues im Wert für Fahrzeugeigenschaft verwendet. |
MIXED |
0x00e00000 |
Property mit gemischten Typen. Beliebige Kombination von Skalar- oder Vektortypen. Das genaue Format muss im config-Array in der Property-Konfiguration angegeben werden.
Bei Properties vom Typ „MIXED“ des Anbieters muss configArray so formatiert sein:
configArray[0] , 1 gibt an, dass die Property einen String -Wert hat
configArray[1] , 1 gibt an, dass die Property einen Boolean -Wert hat
configArray[2] , 1 gibt an, dass die Property einen Integer -Wert hat
configArray[3] : Die Zahl gibt die Größe von Integer[] in der Property an.
configArray[4] , 1 gibt an, dass die Property einen Long -Wert hat
configArray[5] : Die Zahl gibt die Größe von Long[] in der Property an.
configArray[6] , 1 gibt an, dass die Property einen Float -Wert hat
configArray[7] : Die Zahl gibt die Größe von Float[] in der Property an.
configArray[8] : Die Zahl gibt die Größe von byte[] in der Property an.
configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0} gibt beispielsweise an, dass die Property einen String -Wert, einen Boolean -Wert, einen Integer -Wert und ein Array mit drei Ganzzahlen hat.
|
Konfiguration der Gebiets-ID
Jede Property-Konfiguration kann auch eine Liste von Konfigurationen für Gebiets-IDs enthalten. Diese Liste ist für globale Properties optional und für Zonen-Properties (Properties mit mehreren unterstützten Gebieten) erforderlich. Jede Konfiguration der Gebiets-ID enthält die folgenden Felder.
Feld |
Beschreibung |
---|
areaId |
Die ID für diesen Bereich. Weitere Informationen finden Sie unter Region-IDs. |
minInt32Value und maxInt32Value |
- Optionaler Mindest- und Höchstwert für Eigenschaften vom Typ INT32 beim Starten. Für alle anderen Typen muss „0“ angegeben werden. Wird ignoriert, wenn beide Werte 0 sind.
- Wenn für eine globale Property Mindest- und Höchstwert definiert werden müssen, muss eine Gebietskonfiguration mit der Gebiets-ID 0 verwendet werden.
- Dieser Wert ist statisch und ändert sich nicht, auch wenn sich der Mindest- oder Höchstwert zur Laufzeit ändert. Implementieren Sie
IVehicle#getMinMaxSupportedValue für den dynamischen Mindest- oder Höchstwert.
|
minInt64Value und maxInt64Value |
- Optionaler Mindest- und Höchstwert für Eigenschaften vom Typ INT64 beim Starten. Für alle anderen Typen muss „0“ angegeben werden. Wird ignoriert, wenn beide Werte 0 sind.
- Wenn für eine globale Property Mindest- und Höchstwert definiert werden müssen, muss eine Gebietskonfiguration mit der Gebiets-ID 0 verwendet werden.
- Dieser Wert ist statisch und ändert sich nicht, auch wenn sich der Mindest- oder Höchstwert zur Laufzeit ändert. Implementieren Sie
IVehicle#getMinMaxSupportedValue für den dynamischen Mindest- oder Höchstwert.
|
minFloatValue und maxFloatValue |
- Optionaler Mindest- und Höchstwert für Eigenschaften vom Typ „Float“ beim Starten. Für alle anderen Typen muss „0“ angegeben werden. Wird ignoriert, wenn beide Werte 0,0 sind.
- Wenn für eine globale Property Mindest- und Höchstwert definiert werden müssen, muss eine Gebietskonfiguration mit der Gebiets-ID 0 verwendet werden.
- Dieser Wert ist statisch und ändert sich nicht, auch wenn sich der Mindest- oder Höchstwert zur Laufzeit ändert. Implementieren Sie
IVehicle#getMinMaxSupportedValue für den dynamischen Mindest- oder Höchstwert.
|
(Neu in Android 14)
supportedEnumValues |
- Optionale Liste der unterstützten Werte beim Starten, wenn die Property als Property vom Typ „enum“ definiert ist. Wenn nicht angegeben (leer) oder vor Android 14 wird davon ausgegangen, dass alle enum-Werte unterstützt werden.
- Wenn für eine globale Property unterstützte Enum-Werte definiert werden müssen, muss eine Gebietskonfiguration mit der Gebiets-ID 0 verwendet werden.
- Dieser Wert ist statisch und ändert sich nicht, auch wenn sich die unterstützten Werte zur Laufzeit ändern. Implementieren Sie
IVehicle#getSupportedValuesLists für unterstützte dynamische Werte.
- Das gilt nur für Properties vom Typ „Aufzählung“. Bei anderen Typen muss dieses Feld leer sein.
Wenn Sie unterstützte Werte für andere Nicht-Eintragstypen freigeben möchten, verwenden Sie
IVehicle#getSupportedValuesLists .
|
(Neu in Android 15)
supportVariableUpdateRate |
- Gibt an, ob eine variable Aktualisierungsrate unterstützt wird. Das gilt nur für kontinuierliche Properties.
- Wenn dies
true ist, kann die App eine variable Aktualisierungsrate für ein Abo aktivieren, um nur dann Ereignise für Property-Aktualisierungen zu erhalten, wenn sich der Property-Wert ändert. Dabei werden kontinuierliche Properties als „bei Änderung“-Properties behandelt.
- Wenn alle Abonnenten einer Property die variable Aktualisierungsrate aktivieren, wird die variable Aktualisierungsrate für die Property in der Aboanfrage an VHAL aktiviert und VHAL muss nur dann Property-Update-Ereignisse senden, wenn sich der Property-Wert ändert.
- Wenn ein Abonnent eine feste Aktualisierungsrate anfordert, wird durch die Aboanfrage an VHAL die variable Aktualisierungsrate für die Property deaktiviert und AAOS filtert die doppelten Ereignisse für die Kunden heraus, die eine variable Aktualisierungsrate anfordern.
- Es wird dringend empfohlen, für alle kontinuierlichen Properties, die keine Heartbeat-Properties sind, eine variable Aktualisierungsrate zu unterstützen, um die Leistung zu verbessern. Es sei denn, die Property-Daten sind groß (z. B. ein Byte-Array mit einer Größe von 1.000 Byte) und belegen viel Arbeitsspeicher für das Caching.
|
(Neu in Android 16)
hasSupportedValueInfo |
- Wenn nicht
null , gibt an, ob für diese Property Mindest- oder Höchstwerte oder eine Liste der unterstützten Werte angegeben ist.
- In diesem Feld wird festgelegt, ob die APIs für dynamische unterstützte Werte
getMinMaxSupportedValue , getSupportedValuesLists , subscribeSupportedValueChange und unsubscribeSupportedValueChange für diese Property-ID und Gebiets-ID unterstützt werden.
- Andernfalls muss VHAL diese APIs für diese Property-ID und Gebiets-ID implementieren.
null
- Wenn
null oder Android 15 oder niedriger verwendet wird, werden dynamisch unterstützte Werte für diese Property-ID und Gebiets-ID nicht unterstützt. Der Kunde muss die in der Konfiguration der Fahrzeugeigenschaft angegebenen Informationen zu statisch unterstützten Werten verwenden.
|
Gebietstypen
In VehicleArea.aidl
als Enumerationen definiert. Die unterstützten Gebietstypen sind unten aufgeführt.
Gebietstyp |
Wert |
Beschreibung |
---|
GLOBAL |
0x01000000 |
Diese Property ist eine globale Property und hat keine verschiedenen Bereiche. |
WINDOW |
0x03000000 |
Fensterbasierter Bereich, verwendet VehicleAreaWindow -Enum. |
MIRROR |
0x04000000 |
Gebiet basierend auf Spiegeln, verwendet VehicleAreaMirror -Enum. |
SEAT |
0x05000000 |
Bereich basierend auf Sitzplätzen, verwendet VehicleAreaSeat -Enum. |
DOOR |
0x06000000 |
Bereich basierend auf Türen, verwendet VehicleAreaDoor -Enum. |
WHEEL |
0x07000000 |
Fläche basierend auf Rädern, verwendet VehicleAreaWheel -Enum. |
Für jede Zoneneigenschaft muss ein vordefinierter Gebietstyp verwendet werden. Für jeden Gebietstyp gibt es eine Reihe von Bitflags, die in einem Enum für den Gebietstyp definiert sind. Für den Bereich „SEAT“ sind beispielsweise VehicleAreaSeat
Enum-Typen definiert:
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
...
Gebiets-IDs
Zonenspezifische Properties werden über Gebiets-IDs adressiert. Jede Zoneneigenschaft kann eine oder mehrere Gebiets-IDs unterstützen. Eine Regions-ID besteht aus einem oder mehreren Flags aus dem entsprechenden Enum. Für eine Property mit VehicleAreaSeat
können beispielsweise die folgenden Gebiets-IDs verwendet werden:
Artikel |
Beschreibung |
---|
ROW_1_LEFT | ROW_1_RIGHT |
Die Zonen-ID gilt für beide Vordersitze. |
ROW_2_LEFT |
Gilt nur für den linken Rücksitz. |
ROW_2_RIGHT |
Gilt nur für den rechten Rücksitz. |
Weitere Informationen finden Sie unter HLK.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-06-12 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-06-12 (UTC)."],[],[]]