Anbietereigenschaften
Um partnerspezifische Anforderungen zu erfüllen, lässt die VHAL die Anbietereigenschaften zu, auf die zugegriffen wird. nur über System-APIs. Beachten Sie bei der Arbeit mit Anbieter-Properties die folgenden Richtlinien:
- Verwenden Sie immer zuerst Systemeigenschaften. Anbietereigenschaften sollten nur als letztes Mittel eingesetzt werden, wenn keine der Systemeigenschaften Ihre Anforderung erfüllt.
- Um eine Fragmentierung des Ökosystems zu vermeiden, dürfen die Eigenschaften der Anbieter nicht verwendet werden, um Fahrzeuge nachzubilden. Eigenschaften, die bereits im SDK vorhanden sind VehiclePropertyIds Weitere Informationen finden Sie im Abschnitt 2.5 Automobilanforderungen in der CDD.
- Verwenden Sie die folgenden Felder, um die Property-ID zu generieren:
- Die
VehiclePropertyGroup:VENDOR
-VENDOR-Gruppe wird nur für Anbietereigenschaften verwendet. VehicleArea
Wählen Sie einen geeigneten Gebietstyp aus.VehiclePropertyType
Wählen Sie den richtigen Datentyp aus. BYTES können Rohdaten übergeben, was in den meisten Fällen ausreichend ist. Wenn häufig Big Data über Anbietereigenschaften gesendet werden, kann das den Zugriff auf das gesamte Fahrzeugnetzwerk verlangsamen. Seien Sie vorsichtig, wenn Sie eine große Nutzlast hinzufügen.Property ID
Wählen Sie eine eindeutige Zwei-Byte-ID für die Anbietereigenschaft aus. Beispiel: 0x1234.
- Die
- Geben Sie unter
VehiclePropConfig.configString
eine kurze Beschreibung der Anbietereigenschaft ein. So können Tools zur Gültigkeitsprüfung die versehentliche Replikation vorhandener Fahrzeugeigenschaften melden. Beispiel: „Meine benutzerdefinierte Eigenschaft für XYZ“. - Zugriff über CarPropertyManager (für Java-Komponenten) oder über
libvhalclient
(für native Apps). Das sollten Sie tun: keine anderen Auto-APIs ändern, da dies zu zukünftigen Kompatibilitätsproblemen führen kann.
Berechtigung für Anbietereigenschaften
Die Standardberechtigung für alle definierten Anbietereigenschaften ist
android.car.Car.PERMISSION_VENDOR_EXTENSION
Für eine detailliertere Berechtigungssteuerung unterstützen Sie das Attribut SUPPORT_CUSTOMIZE_VENDOR_PERMISSION
. Dieser STATIC
ist schreibgeschützt, wobei das Konfigurationsarray die Berechtigungen für Anbieterattribute angibt.
configArray
wird so festgelegt (i ist eine Ganzzahl, die bei 0 beginnt):
configArray[3 * i]
propId, die Property-ID für das Anbieterattribut.configArray[3 * i + 1]
: Eine Aufzählung inVehicleVendorPermission.aidl
für und geben die Berechtigung zum Lesen des Property-Werts an.configArray[3 * i + 2]
Ein Enum inVehicleVendorPermission.aidl
, das die Berechtigung zum Schreiben des Property-Werts angibt.
Mit dem folgenden Konfigurationsarray werden beispielsweise zwei Anbieterattribute konfiguriert:
vendor_prop_1
und vendor_prop_2
, um folgende Berechtigungen zu erhalten:
- Für
vendor_prop_1
istandroid.car.hardware.property.VehicleVendorPermission.PERMISSION_GET_CAR_VENDOR_CATEGORY_SEAT
zum Lesen undandroid.car.hardware.property.VehicleVendorPermission.PERMISSION_SET_CAR_VENDOR_CATEGORY_SEAT
zum Schreiben erforderlich. - Für
vendor_prop-2
istandroid.car.hardware.property.VehicleVendorPermission.PERMISSION_GET_CAR_VENDOR_CATEGORY_INFO
zum Lesen erforderlich und kann für Android-Apps nicht beschrieben werden.
configArray = { PERMISSION_SET_VENDOR_CATEGORY_SEAT vendor_prop_2, PERMISSION_GET_VENDOR_CATEGORY_INFO, PERMISSION_NOT_ACCESSIBLE }
Für Anbietereigenschaften, die nicht in diesem Array enthalten sind, wird die Standardanbieterberechtigung verwendet. Wann?
PERMISSION_NOT_ACCESSIBLE
ist ausgewählt, Android-Apps können nicht auf die Property zugreifen.
In diesem Beispiel können Android-Apps keinen Wert für vendor_prop_2
schreiben. Nur native Anzeigen
VHAL-Clients können in diese Eigenschaft schreiben.
Erweitertes Fahrassistenzsystem
Weitere Informationen finden Sie unter ADAS-Fahrzeugeigenschaften.SITZ und LENKUNG
Weitere Informationen finden Sie unter Eigenschaften für Sitze und Lenkräder.
Heizung, Lüftung, Klimatechnik (HLK)
Sie können die VHAL verwenden, um die HLK zu steuern, indem Sie HLK-bezogene Eigenschaften festlegen. Die meisten HLK-Eigenschaften sind bestimmten Bereichen im Fahrzeug zugeordnet, einige sind jedoch globale Eigenschaften. Beispiele für definierte Properties:
Attribut | Zweck |
---|---|
HVAC_TEMPERATURE_SET |
Legen Sie die Temperatur pro Gebiets-ID fest. |
HVAC_POWER_ON |
Der Betriebsstatus des HLK-Systems pro Bereichs-ID. |
HLK-Attribute, die vom Betriebsstatus des HLK-Systems abhängen, müssen im HVAC_POWER_ON
-Konfigurationsarray aufgeführt sein. Eine vollständige Liste der HLK-Eigenschaften findest du,
In VehicleProperty.aidl
nach HVAC_*
suchen, siehe
Unterstützte Systemeigenschaften.
Properties.
Regeln für die Zuordnung von nicht globalen HVAC-Eigenschaften vom Typ „VehicleArea“ zu AreaIDs:
Jeder „Bereich“ für einen bestimmten VehicleArea
-Typ, der von der Eigenschaft betroffen ist, muss in einer AreaID für diese Eigenschaft enthalten sein. Die Temperaturregler sind der
die sie „größten Einfluss“ haben, Jeder betroffene Sitzplatz muss jedoch genau einmal angegeben werden.
Die Zuweisung des mittleren Rücksitzes zur linken oder rechten AreaID mag willkürlich erscheinen, aber die Aufnahme jedes betroffenen Sitzes in genau eine AreaID sorgt dafür, dass alle Sitze im Auto angegeben sind und dass eine angemessene Möglichkeit besteht, jeden Sitz zu beeinflussen.
Beispiel 1
Ein Auto hat zwei Vordersitze (ROW_1_LEFT, ROW_1_RIGHT) und drei Rücksitze.
(ROW_2_LEFT, ROW_2_CENTER, ROW_2_RIGHT). Es gibt zwei Temperaturregler, jeweils eines für
auf der Fahrer- und Beifahrerseite. Ein gültiger Zuordnungssatz von AreaIDs für HVAC_TEMPERATURE_SET
wäre ein Array mit zwei Elementen:
- ROW_1_LEFT | ROW_2_LEFT
- ROW_1_RIGHT | ROW_2_CENTER | ROW_2_RIGHT
Eine alternative Zuordnung für dieselbe Hardwarekonfiguration wäre:
- ROW_1_LEFT | ROW_2_CENTER | ROW_2_LEFT
- ROW_1_RIGHT | ROW_2_RIGHT
Beispiel 2
Ein Auto hat drei Sitzreihen mit zwei Sitzen in der ersten Reihe (ROW_1_LEFT, ROW_1_RIGHT) sowie drei Sitzen in der zweiten (ROW_2_LEFT, ROW_2_CENTER, ROW_2_RIGHT) und dritten Reihe (ROW_3_LEFT, ROW_3_CENTER, ROW_3_RIGHT). Es gibt drei Temperaturregler, jeweils einen für die Fahrer-, die Beifahrerseite und den Fond. Eine sinnvolle Möglichkeit, HVAC_TEMPERATURE_SET
zu AreaIDs zuzuordnen, ist ein Array mit drei Elementen:
- ROW_1_LEFT
- ROW_1_RIGHT
- ROW_2_LEFT | ROW_2_CENTER | ROW_2_RIGHT | ROW_3_LEFT | ROW_3_CENTER | ROW_3_RECHTS
Beispiel 3
Ein Auto hat zwei Vordersitze (ROW_1_LEFT, ROW_1_RIGHT) und drei Rücksitze. (ROW_2_LEFT, ROW_2_CENTER, ROW_2_RIGHT). Angenommen, das Auto unterstützt HVAC_AUTO_ON nur für die beiden Vordersitze. Ein gültiger Zuordnungssatz von AreaIDs für HVAC_AUTO_ON wäre eine einzelne Element-Array:
- ROW_1_LEFT | ROW_1_RIGHT
Wenn HVAC_AUTO_ON
zwei separate Steuereinheiten für Fahrer- und Beifahrerseiten hätte
eine alternative Zuordnung wäre ein Array mit zwei Elementen:
- ROW_1_LEFT
- ROW_1_RIGHT
INFO_EXTERIOR_DIMENSIONS
Die Außenabmessungen eines Fahrzeugs werden in Millimetern gemessen, wie in Abbildung 1 dargestellt.


Verwenden Sie die in dieser Tabelle beschriebenen Eigenschaften, um die Außenabmessungen eines Fahrzeugs zu definieren.
Fahrzeugeigenschaft | VHAL-Feld | Beschreibung |
---|---|---|
Größe | int32Values[0] |
Vertikale Entfernung zwischen dem Boden und dem höchsten Punkt des Fahrzeugs. Dabei wird davon ausgegangen, dass die werkseitig montierten Räder normal aufgepumpt sind. |
Länge | int32Values[1] |
Horizontaler Abstand zwischen den äußersten Punkten der Vorder- und Rückseite des Fahrzeugs. |
Breite, ohne Spiegel | int32Values[2] |
Horizontaler Abstand zwischen den beiden äußersten Punkten auf jeder Seite des Fahrzeugs, ausgenommen in die Seitenspiegel. |
Breite, einschließlich Spiegeln | int32Values[3] |
Horizontaler Abstand zwischen den beiden äußersten Punkten auf jeder Seite des Fahrzeugs einschließlich der Seitenspiegel. |
Radstand | int32Values[4] |
Abstand zwischen der Mitte der Vorder- und Hinterräder des Fahrzeugs. |
Spurbreite, vorne | int32Values[5] |
Abstand zwischen den Vorderrädern, gemessen von der Mittellinie eines Reifenprofils bis zur Mittellinie des gegenüberliegenden Reifenprofils. |
Spurbreite, hinten | int32Values[6] |
Abstand zwischen dem Hinterrad, gemessen von der Mittellinie eines Reifenprofils bis zum des gegenüberliegenden Reifenprofils. |
Durchmesser zum Drehen des Bordsteins | int32Values[7] |
Der Durchmesser des Kreises, den die äußeren Räder des Fahrzeugs bei einer vollständigen Kurve mit einem vollständig verriegeltem Lenkrad beschreiben. |
Einhaltung der allgemeinen Sicherheitsvorschriften der Europäischen Union
Ob das Fahrzeug den Anforderungen der EU-Datenschutz-Grundverordnung (GSR) entsprechen muss
Android verwendet, muss die Property GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT
unterstützt werden. Ein Anwendungsfall ist z. B. der in der EU definierte GSR-ISA (Intelligent Speed Assist)
Verordnung 2019/2144. Diese Property wird in AIDL VHAL ab Android 13 hinzugefügt, wird aber seit der Veröffentlichung von Android 12 in Car Service unterstützt. Diese Property ist als schreibgeschützte, statische globale Ganzzahleigenschaft definiert. Die möglichen Werte werden durch die Aufzählung GsrComplianceRequirementType
definiert:
Name | Wert | Beschreibung |
---|---|---|
GSR_COMPLIANCE_NOT_REQUIRED |
0 | Einhaltung der GSR-Anforderungen ist nicht erforderlich |
GSR_COMPLIANCE_REQUIRED_V1 |
1 | Die GSR-Konformität ist erforderlich und die Anforderungslösungsversion ist 1. |
Um diese Eigenschaft in HIDL VHAL (in Android 12) zu unterstützen, müssen Anbieter die Eigenschafts-ID hartcodieren.
Das folgende Snippet zeigt beispielsweise, wie dies in der Referenz-HIDL-VHAL DefaultConfig.h
unterstützt wird:
{ .config = { // GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT .prop = 0x11400F47, .access = VehiclePropertyAccess::READ, .changeMode = VehiclePropertyChangeMode::STATIC, }, // GsrComplianceRequirementType::GSR_COMPLIANCE_REQUIRED_V1 .initialValue = {.int32Values = {1}}, }
Um diese Eigenschaft in AIDL VHAL (ab Android 13) zu unterstützen, können Anbieter die Property-ID aus VehicleProperty.h
und das Enum aus GsrComplianceRequirementType.h
verwenden. Beispiel: In der Referenz-AIDL-VHAL DefaultProperties.json
:
{ "property": "VehicleProperty::GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT", "defaultValue": { "int32Values": [ "GsrComplianceRequirementType::GSR_COMPLIANCE_REQUIRED_V1" ] } }
Wenn Sie diese Property aus einer Android-App lesen möchten, verwenden Sie CarPropertyManager.getIntProperty
.
- Verwenden Sie unter Android 13 und höher
VehiclePropertyIds.GENERAL_SAFETY_REGULATION_COMPLIANCE
als Property-ID ein. - Verwenden Sie unter Android 12 den hartcodierten Wert 0x11400F47 als Property-ID. Dieses
Für die Property ist die Berechtigung
Car#PERMISSION_CAR_INFO
erforderlich.