إدخال المفتاح، إدخال المفتاح

استنادًا إلى خاصية HAL للمركبة VEHICLE_PROPERTY_HW_KEY_INPUT ، المحددة في hardware/libhardware/include/hardware/vehicle.h ، يتعامل Android Automotive مع الإدخال الرئيسي من العناصر التي تتضمن مفاتيح التوجيه عن بعد، وأزرار الأجهزة، ولوحات اللمس.

على سبيل المثال، إرسال حدث رئيسي عبر شبكة ناقل CAN:

الحدث الرئيسي

الشكل 1. الأحداث الرئيسية لـ Android Automotive عبر تدفق CANbus.

بيانات الحدث الرئيسية

يتم إرفاق البيانات التالية بكل حدث رئيسي في HAL للمركبة:

  • إجراء الإدخال (أعلى/أسفل):
    VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0,
    VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,
    
  • تم تعيين رمز المفتاح لمفاتيح Android في تطبيق شريك لـ Vehicle HAL.
  • عرض الهدف (مجموعة الأدوات/الرئيسية):
    VEHICLE_DISPLAY_MAIN               = 0,
    VEHICLE_DISPLAY_INSTRUMENT_CLUSTER = 1,
    

تستخدم وحدة معالجة الإدخال الرئيسية في مجموعة العدادات خدمة CarInputService (تستخدم نفس الخدمة لمعالجة الإدخال المنتظم في السيارة). يتم نشر الأحداث الرئيسية إلى InstrumentClusterRenderingService :

public class MyClusterRenderingService extends
InstrumentClusterRenderingService {
    ...
    @Override protected void onKeyEvent(KeyEvent keyEvent) { /* Inject to
    Presentation? */ }
}
,

استنادًا إلى خاصية HAL للمركبة VEHICLE_PROPERTY_HW_KEY_INPUT ، المحددة في hardware/libhardware/include/hardware/vehicle.h ، يتعامل Android Automotive مع الإدخال الرئيسي من العناصر التي تتضمن مفاتيح التوجيه عن بعد، وأزرار الأجهزة، ولوحات اللمس.

على سبيل المثال، إرسال حدث رئيسي عبر شبكة ناقل CAN:

الحدث الرئيسي

الشكل 1. الأحداث الرئيسية لـ Android Automotive عبر تدفق CANbus.

بيانات الحدث الرئيسية

يتم إرفاق البيانات التالية بكل حدث رئيسي في HAL للمركبة:

  • إجراء الإدخال (أعلى/أسفل):
    VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0,
    VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,
    
  • تم تعيين رمز المفتاح لمفاتيح Android في تطبيق شريك لـ Vehicle HAL.
  • عرض الهدف (مجموعة الأدوات/الرئيسية):
    VEHICLE_DISPLAY_MAIN               = 0,
    VEHICLE_DISPLAY_INSTRUMENT_CLUSTER = 1,
    

تستخدم وحدة معالجة الإدخال الرئيسية في مجموعة العدادات خدمة CarInputService (تستخدم نفس الخدمة لمعالجة الإدخال المنتظم في السيارة). يتم نشر الأحداث الرئيسية إلى InstrumentClusterRenderingService :

public class MyClusterRenderingService extends
InstrumentClusterRenderingService {
    ...
    @Override protected void onKeyEvent(KeyEvent keyEvent) { /* Inject to
    Presentation? */ }
}