Anbietereigenschaften
Um partnerspezifische Anforderungen zu erfüllen, lässt die VHAL die Anbietereigenschaften zu, auf die zugegriffen wird. nur über System-APIs. Beachten Sie beim Arbeiten mit Anbietereigenschaften die folgenden Richtlinien:
- Versuchen Sie immer zuerst, die Systemeigenschaften zu verwenden. Als letzte Option sollten Sie die Anbietereigenschaften verwenden. 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:
<ph type="x-smartling-placeholder">
- </ph>
- 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. Häufiges Senden von Big Data über Anbietereigenschaften kann das den Zugriff auf das gesamte Netzwerk verlangsamen. Seien Sie vorsichtig, wenn Sie eine große Nutzlast hinzufügen.Property ID
Wählen Sie eine eindeutige 2-Byte-ID für die Anbietereigenschaft aus. Beispiel: 0x1234.
- Die
- Geben Sie in
VehiclePropConfig.configString
eine kurze Beschreibung des Anbieters ein. Property. Dadurch können Tools zur Gültigkeitsprüfung die versehentliche Replikation vorhandener Fahrzeugeigenschaften. Beispiel: „Meine benutzerdefinierte Eigenschaft für XYZ“. - Zugriff über
Auto-Property-Manager
(für Java-Komponenten) oder über die
libvhalclient
(für native Anzeigen). 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 detailliertere Berechtigungen
die SUPPORT_CUSTOMIZE_VENDOR_PERMISSION
-Eigenschaft unterstützen. Dieser STATIC
ist schreibgeschützt, wobei ihr 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]
: Eine Aufzählung inVehicleVendorPermission.aidl
für und geben die Berechtigung zum Schreiben des Property-Werts an.
Mit dem folgenden Konfigurationsarray werden beispielsweise zwei Anbieterattribute konfiguriert:
vendor_prop_1
und vendor_prop_2
, um folgende Berechtigungen zu haben:
vendor_prop_1
erfordertandroid.car.hardware.property.VehicleVendorPermission.PERMISSION_GET_CAR_VENDOR_CATEGORY_SEAT
zu lesen,android.car.hardware.property.VehicleVendorPermission.PERMISSION_SET_CAR_VENDOR_CATEGORY_SEAT
zu schreiben.vendor_prop-2
erfordertandroid.car.hardware.property.VehicleVendorPermission.PERMISSION_GET_CAR_VENDOR_CATEGORY_INFO
und ist für Android-Apps nicht beschreibbar.
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
Siehe ADAS-Fahrzeugeigenschaften.SITZPLATZ und LEITUNG
Weitere Informationen finden Sie unter Eigenschaften von Sitz und Lenkrad.
Heizung, Lüftung, Klimatechnik (HLK)
Sie können den VHAL verwenden, um die HLK-Anlagen zu steuern, indem Sie HLK-bezogene Eigenschaften festlegen. Die meisten HLK-Eigenschaften mit bestimmten Bereichen des Fahrzeugs verknüpft sind, wobei es sich bei einigen auch um globale Objekte handelt. Beispiele für definierte Properties:
Attribut | Zweck |
---|---|
HVAC_TEMPERATURE_SET |
Legen Sie die Temperatur pro Gebiets-ID fest. |
HVAC_POWER_ON |
Der Stromversorgungsstatus des HLK-Systems nach Gebiets-ID. |
Für HLK-Eigenschaften, die vom Stromversorgungsstatus des HLK-Systems abhängen, müssen diese
sind im HVAC_POWER_ON
-Konfigurationsarray aufgeführt. Eine vollständige Liste der HLK-Eigenschaften findest du,
In VehicleProperty.aidl
nach HVAC_*
suchen, siehe
Unterstützte Systemeigenschaften.
Eigenschaften.
Regeln für die Zuordnung von nicht-GLOBALen HLK-Eigenschaften des Typs „Fahrzeugfläche“ zu AreaIDs:
Jede „Region“ eines bestimmten VehicleArea
-Typs, die von der Property betroffen ist, muss
in einer Gebiets-ID für diese Unterkunft enthalten ist. Die Temperaturregler sind der
die sie „größten Einfluss“ haben, Jeder betroffene Sitzplatz muss jedoch genau einmal angegeben werden.
Die Zuordnung der Mitte hinten zur linken oder rechten AreaID kann beliebig erscheinen.
aber durch die Aufnahme jedes betroffenen Sitzes in genau eine AreaID wird sichergestellt,
alle Sitze im Auto vertreten sind und eine angemessene Möglichkeit zur Anpassung der einzelnen Sitzplätze vorhanden ist.
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_RECHTS
Eine alternative Zuordnung für dieselbe Hardwarekonfiguration wäre:
- ROW_1_LEFT | ROW_2_CENTER | ROW_2_LEFT
- ROW_1_RIGHT | ROW_2_RECHTS
Beispiel 2
Ein Auto hat drei Reihen mit zwei Sitzen in der ersten Reihe (ROW_1_LEFT, ROW_1_RIGHT)
und drei Sitze 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 eines für
Fahrer-, Beifahrer- und Heckseite. Eine sinnvolle Kartierungsmethode
HVAC_TEMPERATURE_SET
zu AreaIDs ist ein Array aus drei Elementen:
- ROW_1_LEFT
- ROW_1_RECHTS
- 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 auf den beiden Vordersitzen. Ein gültiger Zuordnungssatz von AreaIDs für HVAC_AUTO_ON wäre eine einzelne Element-Array:
- ROW_1_LEFT | ROW_1_RECHTS
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_RECHTS
INFO_EXTERIOR_DIMENSIONEN
Die Außenabmessungen eines Fahrzeugs werden in Millimetern gemessen, wie in Abbildung 1 dargestellt.
<ph type="x-smartling-placeholder"> <ph type="x-smartling-placeholder">Verwenden Sie die in dieser Tabelle beschriebenen Eigenschaften, um die Außenansicht eines Fahrzeugs zu definieren Dimensionen.
Fahrzeugeigenschaft | VHAL-Feld | Beschreibung |
---|---|---|
Größe | int32Values[0] |
Vertikaler Abstand zwischen Boden und höchstem Punkt des Fahrzeugs. Dies setzt voraus, normalerweise aufgeblähte Fabrikräder. |
Länge | int32Values[1] |
Horizontaler Abstand zwischen den äußersten Punkten vorne und hinten 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 Vorderrad, gemessen von der Mittellinie eines Reifenprofils bis zum 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, der von den äußeren Rädern des Fahrzeugs beim vollständigen Abbiegen erzeugt wird mit einem vollständig verriegelten Lenkrad. |
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 Eigenschaft wird in AIDL VHAL von Android 13 hinzugefügt, ist jedoch
seit der Veröffentlichung von Android 12 in CarService unterstützt wird. Diese Eigenschaft ist als schreibgeschützt definiert
statisches globales Ganzzahlattribut mit möglichen Werten durch
GsrComplianceRequirementType
-Enum:
Name | Wert | Beschreibung |
---|---|---|
GSR_COMPLIANCE_NOT_REQUIRED |
0 | GSR-Konformität 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 im Referenz-HIDL unterstützt wird
VHAL
DefaultConfig.h
:
{ .config = { // GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT .prop = 0x11400F47, .access = VehiclePropertyAccess::READ, .changeMode = VehiclePropertyChangeMode::STATIC, }, // GsrComplianceRequirementType::GSR_COMPLIANCE_REQUIRED_V1 .initialValue = {.int32Values = {1}}, }
Zur Unterstützung dieser Eigenschaft in AIDL VHAL (ab Android 13) können Anbieter die Eigenschafts-ID von
VehicleProperty.h
und Enum aus GsrComplianceRequirementType.h
. Für
Beispiel, wie 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 in Android 12 den hartcodierten Wert 0x11400F47 als Property-ID. Dieses
Für die Property ist die Berechtigung
Car#PERMISSION_CAR_INFO
erforderlich.