ورودی کلید، ورودی کلید

بر اساس ویژگی Vehicle HAL VEHICLE_PROPERTY_HW_KEY_INPUT ، تعریف شده در hardware/libhardware/include/hardware/vehicle.h ، Android Automotive ورودی های کلیدی را از عناصری که شامل سوئیچ های راه دور فرمان، دکمه های سخت افزاری، و پانل های لمسی هستند کنترل می کند.

به عنوان مثال، ارسال یک رویداد کلیدی از طریق یک شبکه اتوبوس CAN:

رویداد کلیدی

شکل 1. رویدادهای کلیدی Android Automotive در جریان CANbus.

داده های رویداد کلیدی

داده های زیر به هر رویداد کلیدی در Vehicle HAL پیوست می شود:

  • عملکرد ورودی (بالا/پایین):
    VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0,
    VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,
    
  • کد کلید در اجرای شریک Vehicle HAL به کلیدهای Android نگاشت شده است.
  • نمایشگر هدف (خوشه اصلی/ابزار):
    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? */ }
}
،

بر اساس ویژگی Vehicle HAL VEHICLE_PROPERTY_HW_KEY_INPUT ، تعریف شده در hardware/libhardware/include/hardware/vehicle.h ، Android Automotive ورودی های کلیدی را از عناصری که شامل سوئیچ های راه دور فرمان، دکمه های سخت افزاری، و پانل های لمسی هستند کنترل می کند.

به عنوان مثال، ارسال یک رویداد کلیدی از طریق یک شبکه اتوبوس CAN:

رویداد کلیدی

شکل 1. رویدادهای کلیدی Android Automotive در جریان CANbus.

داده های رویداد کلیدی

داده های زیر به هر رویداد کلیدی در Vehicle HAL پیوست می شود:

  • عملکرد ورودی (بالا/پایین):
    VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0,
    VEHICLE_HW_KEY_INPUT_ACTION_UP = 1,
    
  • کد کلید در اجرای شریک Vehicle HAL به کلیدهای Android نگاشت شده است.
  • نمایشگر هدف (خوشه اصلی/ابزار):
    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? */ }
}