سفارشی‌سازی برنامه مرجع

این بخش جزئیات نحوه سفارشی‌سازی برنامه مرجع مرکز کنترل و رابط کاربری را شرح می‌دهد.

جریان‌های کاربری و رابط کاربری

این بخش جریان‌های کاربری و نحوه‌ی راه‌اندازی مرکز کنترل را شرح می‌دهد.

مرکز کنترل پرتاب

می‌توانید مرکز کنترل را از طریق لانچر برنامه یا یک آیکون در نوار ناوبری رابط کاربری سیستم اجرا کنید. این آیکون فقط در نسخه‌هایی ظاهر می‌شود که قابلیت مشاهده کاربران در پس‌زمینه فعال باشد (برای اطلاعات بیشتر، به UserHandleAware مراجعه کنید).

شما می‌توانید مرکز کنترل را در هر زمانی مشاهده کنید. مرکز کنترل ترکیبی از پنجره‌های شفاف و پس‌زمینه‌های شفاف است، بنابراین می‌تواند روی هر برنامه دیگری، از جمله ویدیوها و رسانه‌های در حال پخش فعال، ظاهر شود. در صفحه فرود برنامه:

  • چیدمان صفحه نمایش و استفاده از صفحه نمایش‌های محلی و از راه دور .
  • صفحه نمایش‌ها پر از رسانه‌ها و کنترل‌های رسانه‌ای بود.
  • چگونه هر صفحه، نمای دقیقی از کنترل‌های رسانه (و موارد دیگر) را ارائه می‌دهد.

چیدمان صفحات نمایش، طرح‌بندی صفحات نمایش در وسیله نقلیه را نشان می‌دهد. هر صفحه یک DevicePickerScreen است. برای سفارشی‌سازی مکان و اندازه هر صفحه، از یک پوشش منبع زمان اجرا (RRO) استفاده کنید. برای کسب اطلاعات بیشتر، به تغییر مقدار منابع یک برنامه در زمان اجرا مراجعه کنید.

برای هر نمایشگری که مرکز کنترل روی آن باز است، یک صفحه نمایش متفاوت با حاشیه‌ای روشن و برجسته نمایش داده می‌شود. این صفحه نمایش محلی ، نمایشگر مورد استفاده است.

هر صفحه نمایش دیگر، یک صفحه نمایش از راه دور است که نمایشگر متفاوتی را در خودرو نشان می‌دهد که می‌توانید بر اساس چیدمان صفحات نمایش در فرگمنت، آن را شناسایی کنید. برای محاسبه تعداد کل مناطق سرنشین پیکربندی شده در خودرو، CarOccupantZoneManager#getAllOccupantZones استفاده کنید.

هر صفحه یک ویژگی سفارشی controlcenter:occupantZoneId برای مرتبط کردن داده‌ها با منطقه اشغال مربوطه تعریف می‌کند. هنگامی که یک برنامه رسانه‌ای در یک نمایشگر خاص پخش می‌شود، صفحه مربوطه تصویر آلبوم رسانه را نمایش می‌دهد. یک دکمه پخش (یا مکث ) در زیر صفحه نمایش داده می‌شود.

اگر برنامه‌ی رسانه‌ای فعال، یک وظیفه‌ی قابل مشاهده باشد (که در پشت مرکز کنترل باز است)، دکمه‌ی اشتراک‌گذاری (Share) که در کنار دکمه‌ی پخش (Play) قرار دارد، برای باز کردن صفحه‌ی Mirroring فعال می‌شود. اشتراک‌گذاری (Share) به شما امکان می‌دهد تا نمایش برنامه‌ی رسانه‌ای را به اشتراک بگذارید و برای برنامه‌های رسانه‌ای دارای ویدیو، بیشترین کاربرد را دارد.

عناصر صفحه نمایش

با ضربه زدن روی صفحه نمایش، نمای دقیقی از رسانه در حال پخش روی صفحه نمایش داده می‌شود. به این صفحه، صفحه جزئیات می‌گویند. این نما، ابرداده‌های رسانه‌ای مانند عنوان، پیشرفت پخش و هنرمند را نشان می‌دهد. این دکمه‌ها کنترل بیشتری بر روی منطقه اشغال شده توسط سرنشینان فراهم می‌کنند.

  • خروجی صدا نشان می‌دهد که کدام خروجی صدا در حال پخش رسانه است، مانند بلندگوهای کابین یا هدفون. خروجی صدا پنجره‌ای را برای تغییر خروجی صدا و میزان صدای رسانه باز می‌کند.

  • قفل ورودی نمایشگر، ورودی‌های صفحه نمایش را قفل می‌کند. این عملیات را نمی‌توان روی صفحه نمایش راننده اعمال کرد.

  • گزینه Display Power برق صفحه نمایش را قطع می‌کند. این عملیات را نمی‌توان روی صفحه نمایش راننده اعمال کرد.

نمای جزئیات ، دکمه اشتراک‌گذاری را نمایش می‌دهد که وقتی رسانه در پشت برنامه مرکز کنترل قابل مشاهده است، باید روی آن ضربه بزنید. اشتراک‌گذاری صفحه Mirroring را باز می‌کند:

سفر آینه‌ای و تماشای همزمان بین فرستنده (بالا) و گیرنده (پایین)
شکل ۲. صفحه آینه‌ای و سفر همزمان بین فرستنده (بالا) و گیرنده (پایین).

شروع یک جلسه تماشای همزمان

صفحه Mirroring مشابه صفحه Landing با استفاده از RRO است.

برای افزودن یک صفحه برای تماشای همزمان، روی صفحه ضربه بزنید و سپس روی «انجام شد» ضربه بزنید.

انجام این کار یک Mirroring Activity را باز می‌کند که میزبان برنامه مشترک است و کنترل‌های شناور و گذرا را برای ترک جلسه تماشای مشترک یا ورود مجدد به صفحه Mirroring برای اضافه کردن یا حذف شرکت‌کنندگان ارائه می‌دهد.

آینه‌سازی فعالیت، نمایش یک برنامه مشترک با کنترل‌های شناور برای مدیریت جلسه تماشای همزمان.
شکل ۳. آینه‌سازی فعالیت با کنترل‌های شناور گذرا

خلاصه

صفحات مختلف مرکز کنترل در اینجا خلاصه شده‌اند.

فلوچارتی که صفحات و انتقال‌های مختلف را در برنامه مرکز کنترل نشان می‌دهد.
شکل ۴. صفحات مرکز کنترل.

دستورالعمل‌های سفارشی‌سازی

مرکز کنترل از کتابخانه رابط کاربری خودرو برای شخصی‌سازی استفاده می‌کند و یک تم و ساختار پایه ارائه می‌دهد که می‌تواند به همین شکل فعلی پذیرفته شود یا طبق این محدودیت‌ها اصلاح شود.

سفارشی‌سازی توضیحات
باید

قالب‌بندی و استایل کلی را از طریق RRO تنظیم کنید، مانند:

  • پالت رنگ
  • اندازه
  • ظاهر متن
  • ظاهر گفتگو
  • ترسیم‌پذیرها
  • مقادیر پیکربندی
ممکن است ساختار رابط کاربری سطح بالای مرکز کنترل را اصلاح کنید.

مرکز کنترل به مجموعه‌ای از برنامه‌های سیستمی تعلق دارد که شامل رسانه، مرکز اعلان‌ها و لانچر برنامه می‌شود. این برنامه‌ها سبک‌ها و ویژگی‌های تعریف‌شده در سطوح مختلف ساختار AOSP را به اشتراک می‌گذارند:

framework/base/core
تمام استایل‌های پایه اندروید در اینجا تعریف شده‌اند. به طور خاص، تمام تم‌های برنامه‌های سیستمی بر اساس Theme.DeviceDefault هستند، تمی که برای استفاده توسط تولیدکنندگان اصلی تجهیزات (OEM) جهت سفارشی‌سازی ظاهر پیش‌فرض دستگاه طراحی شده است.

packages/services/Car/car_product/overlay :
این پوشه شامل overrideهای Theme.DeviceDefault است که برای تولید ظاهر و حس AOSP اندروید اتوموتیو استفاده می‌شوند. تولیدکنندگان اصلی تجهیزات (OEM) ممکن است این overlay را حذف کرده و به جای آن از overlay خودشان استفاده کنند.

packages/apps/Car/libs/car-ui-lib :
این کتابخانه، اجزا و منابع AAOS مشترک بین برنامه‌های سیستمی و برنامه‌های جداگانه‌ای که برای سفارشی‌سازی طراحی شده‌اند را تعریف می‌کند. برای جزئیات بیشتر، به راهنمای یکپارچه‌سازی کتابخانه رابط کاربری خودرو مراجعه کنید.

packages/apps/Car/libs/car-apps-common :
رنگ‌ها و استایل‌های رایج بین برنامه‌های سیستمی ارائه شده توسط AOSP. می‌توانید از overlayها برای سفارشی‌سازی این عناصر استفاده کنید (مشابه packages/services/Car/car_product/overlay ).

packages/apps/Car/MultiDisplay/ControlCenter :
همه برنامه‌های سیستمی دارای یک تم هستند که از Theme.CarUi ارث‌بری می‌کند و در car-ui-lib تعریف شده است. ControlCenterActivity از Theme.Transparent سفارشی استفاده می‌کند که Theme.CarUi ارث‌بری می‌کند.

برای پشتیبانی از یک جریان (مانند تماشای همزمان که نیاز به قابل مشاهده بودن وظیفه آینه‌ای دارد)، مرکز کنترل از ترکیبی از پنجره‌های شفاف و پس‌زمینه‌های شفاف استفاده می‌کند که برنامه را به پس‌زمینه نمی‌فرستد یا Lifecycle events ارسال نمی‌کند.

<style name="Theme.Transparent" parent="@style/Theme.CarUi.NoToolbar">
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">@color/transparent</item>
</style>