اعتبارًا من عام 2026، ولضمان اتّساق نموذج التطوير الثابت الأساسي واستقرار المنصة في النظام المتكامل، سننشر رمز المصدر في مشروع Android مفتوح المصدر (AOSP) في الربعَين الثاني والرابع. لبناء مشروع Android مفتوح المصدر والمساهمة فيه، استخدِم android-latest-release. سيشير فرع بيان android-latest-release دائمًا إلى أحدث إصدار تم نشره في مشروع Android مفتوح المصدر. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في مشروع Android مفتوح المصدر.
تستخدم Google تكنولوجيا الذكاء الاصطناعي لترجمة المحتوى إلى لغتك المفضّلة، وقد تتضمّن بعض الأخطاء.
إعدادات خصائص VHAL
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يتم تحديد كل سمة متوافقة من خلال إعدادات سمة يتم تحديدها من خلال بنية VehiclePropConfig، وتتضمّن الحقول التالية.
| الحقل |
الوصف |
|---|
prop |
معرّف الموقع يجب أن تكون هذه السمة إحدى سمات النظام المحدّدة من
VehicleProperty.aidl
أو إحدى سمات المورّد. يتم إنشاء رقم تعريف الموقع باستخدام عملية bit-or للحقول التالية
(من اليمين إلى اليسار):
- (0x00000000) 16 بت: معرّف فريد من النطاق 0x0100 إلى 0xffff.
- (0x00000000) 8 بت: أنواع السمات التي تحدد نوع السمة.
- (0x00000000) 4 بت: أنواع المناطق
- (0x00000000) 4 بت:
VehiclePropertyGroup هذا هو إما SYSTEM
(0x10000000) أو VENDOR (0x20000000). اطّلِع على خصائص المورّد لمعرفة الخصائص التي يمكنك تخصيصها.
على سبيل المثال،
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 في قيمة سمة المركبة. |
BOOLEAN |
0x00200000 |
تستخدم السمة Boolean العنصر الأول في الحقل int32Values ضمن قيمة سمة المركبة.
0 تعني false، وNone 0 تعني true. |
INT32 |
0x00400000 |
تستخدم السمة Integer العنصر الأول في الحقل int32Values ضمن قيمة سمة المركبة. |
INT32_VEC |
0x00410000 |
تستخدم السمة Integer[] العناصر في الحقل int32Values ضمن قيمة سمة المركبة. |
INT64 |
0x00500000 |
سمة طويلة تستخدم العنصر الأول في حقل int64Values ضمن قيمة سمة المركبة |
INT64_VEC |
0x00510000 |
تستخدم السمة Long[] العناصر في الحقل int64Values ضمن قيمة سمة المركبة. |
FLOAT |
0x00600000 |
تستخدم السمة Float العنصر الأول في الحقل floatValues ضمن قيمة سمة المركبة. |
FLOAT_VEC |
0x00610000 |
تستخدم السمة Float[] العناصر في الحقل floatValues ضمن قيمة سمة المركبة. |
BYTES |
0x00700000 |
تستخدم السمة byte[] العناصر في الحقل byteValues ضمن قيمة سمة المركبة. |
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. إذا لم يتم تحديدها (كانت فارغة) أو قبل الإصدار 14 من نظام التشغيل Android، يُفترض أنّ جميع قيم التعداد
المرتبطة بها متوافقة.
- بالنسبة إلى السمة العمومية، إذا كان يجب تحديد قيم التعداد المتوافق، يجب استخدام إعداد منطقة واحد برقم تعريف المنطقة 0.
- هذه القيمة ثابتة ولن تتغيّر حتى إذا تغيّرت القيم المتوافقة في وقت التشغيل. استخدِم السمة
IVehicle#getSupportedValuesLists للقيم الديناميكية المسموح بها.
- ينطبق ذلك فقط على السمات من النوع enum. بالنسبة إلى الأنواع الأخرى، يجب أن يكون هذا الحقل فارغًا.
لعرض القيم المسموح بها لأنواع أخرى غير أنواع التعداد، استخدِم
IVehicle#getSupportedValuesLists.
|
(ميزة جديدة في Android 15)
supportVariableUpdateRate |
- تُستخدَم لتحديد ما إذا كان معدّل تعديل المتغيّر متاحًا. ينطبق ذلك فقط على المواقع المستمرة.
- إذا كانت القيمة
true، يمكن للتطبيق تفعيل معدّل تعديل متغيّر للاشتراك لتلقّي أحداث تعديل الخصائص فقط عند تغيُّر قيمة الخاصية (أي التعامل مع الخصائص المستمرة على أنّها خصائص عند التغيير).
- إذا فعّل جميع المشتركين في إحدى السمات معدّل تعديل متغيّر، سيؤدي طلب الاشتراك في VHAL إلى تفعيل معدّل تعديل متغيّر للسمة، ويجب أن يرسل VHAL أحداث تعديل السمة فقط عند تغيُّر قيمة السمة.
- إذا طلب أي مشترك معدّل تحديث ثابت، سيؤدي طلب الاشتراك في VHAL إلى إيقاف معدّل التحديث المتغيّر للسمة، وستعمل AAOS على فلترة الأحداث المكرّرة للعملاء الذين يطلبون معدّل تحديث متغيّر.
- يُنصح بشدة بتوفير معدّل تعديل متغيّر لجميع الخصائص المستمرة غير المرتبطة بنبض القلب للحصول على أداء أفضل، إلا إذا كانت بيانات الخاصية كبيرة (على سبيل المثال، مصفوفة بايت بحجم 1 كيلوبايت) وقد تشغل مقدارًا كبيرًا من الذاكرة للتخزين المؤقت.
|
(ميزة جديدة في Android 16)
hasSupportedValueInfo |
- إذا لم يكن
null، يوضّح ما إذا كانت هذه السمة تحدّد الحد الأدنى أو الأقصى للقيم المسموح بها أو قائمة القيم المسموح بها.
- يتحكّم هذا الحقل في ما إذا كانت واجهات برمجة التطبيقات الديناميكية للقيم المسموح بها:
getMinMaxSupportedValue وgetSupportedValuesLists
وsubscribeSupportedValueChange وunsubscribeSupportedValueChange
متاحة لمعرّف الموقع ومعرّف المنطقة هذا.
- إذا لم يكن
null، يجب أن تنفّذ VHAL واجهات برمجة التطبيقات هذه لمعرّف الموقع ومعرّف المنطقة.
- إذا كان
null أو في الإصدار 15 من نظام التشغيل Android أو إصدار أقدم، لن تكون القيم الديناميكية المتاحة لمعرّف الموقع ومعرّف المنطقة غير متاحة. يجب أن يستخدم العميل معلومات القيمة المسموح بها الثابتة المقدَّمة في إعدادات خصائص المركبة.
|
أنواع المناطق
يتم تحديدها كقيم تعدادية في VehicleArea.aidl. في ما يلي قائمة بأنواع المناطق المتوافقة.
| نوع المنطقة |
القيمة |
الوصف |
|---|
| GLOBAL |
0x01000000 |
هذا الموقع هو موقع عالمي ولا يتضمّن مناطق متعدّدة. |
| WINDOW |
0x03000000 |
المساحة المستندة إلى النوافذ، وتستخدِم التعداد VehicleAreaWindow. |
| MIRROR |
0x04000000 |
المنطقة المستندة إلى المرايا، وتستخدم تعداد VehicleAreaMirror. |
| سيات |
0x05000000 |
المنطقة المستندة إلى المقاعد، وتستخدم تعداد VehicleAreaSeat. |
| DOOR |
0x06000000 |
المنطقة المستندة إلى الأبواب، تستخدم تعداد VehicleAreaDoor. |
| WHEEL |
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 |
لا ينطبق ذلك إلا على المقعد الخلفي الأيمن. |
لمزيد من المعلومات، يُرجى الاطّلاع على أنظمة التدفئة والتهوية وتكييف الهواء.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2026-09-18 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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"]],["تاريخ التعديل الأخير: 2026-09-18 (حسب التوقيت العالمي المتفَّق عليه)"],[],[]]