دمج "معالج الإعداد"

في ميزة "النوافذ المتقدّمة"، يتألف مشهد الصفحة الرئيسية من لوحات تطبيقات متعددة مرئية وتفاعلية في الوقت نفسه، بدلاً من نشاط محدد على الصفحة الرئيسية. تستخدم ميزة "النافذة المتقدّمة" إصدارًا فارغًا من نشاط الصفحة الرئيسية ليكون حاجزًا مرئيًا لمهام النوافذ المتعدّدة.

على الرغم من أنّ "معالج الإعداد" (SUW) يُعدّ غالبًا مهمة منزلية، ننصحك بضبطه كجزء من لوحة لإنشاء تجارب منزلية أكثر اتساقًا وموثوقية.

ضبط حاجز رؤية المنزل

تأكَّد من أنّ نشاط حاجز إذن الوصول إلى المنزل هو نشاط منزل متوافق مع التشغيل المباشر ويتمتّع بأولوية أعلى في فلتر intent الخاص بالمنزل مقارنةً بنشاط SUW.

لمزيد من المعلومات، يُرجى الاطّلاع على المنصة المرجعية في حزمة StubCarLauncher. ننصحك بتضمين هذه الحزمة في إصداراتك وتثبيتها لجميع المستخدمين.

ضبط لوحة "إعداد الجهاز"

ننصحك بوضع SUW في لوحة مخصّصة للتعامل مع الحالات الفريدة والسماح بوضعها في مكان مخصّص خارج مهمة الجذر التلقائية. يمكنك ضبط حدود هذه اللوحة وطبقاتها.

لضمان عدم حجب واجهة SUW، ننصحك بوضعها في طبقة عالية نسبيًا. يجب أن تعرض هذه اللوحة أحداث النظام الخاصة بـ _System_EnterSuwEvent و_System_ExitSuwEvent وتخفيها، على التوالي. لنأخذ مثالاً على الإعدادات التالية:

<TaskPanel id="suw_panel" defaultVariant="@id/closed" displayId="0" controller="@xml/suw_panel_controller">
    <TaskBehavior newTaskLaunchPolicy="REPARENT_TO_SOURCE"/>
    <Variant id="@+id/base">
        <Layer layer="@integer/suw_panel_layer"/>
        <Bounds left="0" top="0" width="100%" height="100%" />
        <Background color="@color/suw_panel_background_color" />
    </Variant>
    <Variant id="@+id/opened" parent="@id/base">
        <Visibility isVisible="true"/>
    </Variant>
    <Variant id="@+id/closed" parent="@id/base">
        <Visibility isVisible="false"/>
    </Variant>

    <Transitions>
        <Transition onEvent="_System_TaskOpenEvent" onEventTokens="panelId=suw_panel" toVariant="@id/opened"/>
        <Transition onEvent="_System_TaskPanelEmptyEvent" onEventTokens="panelId=suw_panel" toVariant="@id/closed"/>
        <Transition onEvent="_System_EnterSuwEvent" toVariant="@id/opened"/>
        <Transition onEvent="_System_ExitSuwEvent" toVariant="@id/closed"/>
    </Transitions>
</TaskPanel>

...

<Controller id="suw_panel_controller">
    <ControllerName>
        com.android.systemui.car.wm.scalableui.panel.controller.SetupPanelController
    </ControllerName>
    <PersistentPackage>com.android.car.mysetuppackage</PersistentPackage>
</Controller>

للتوافق مع تطبيق SUW العادي، إذا أصبحت لوحة SUW غير مرئية أثناء عملية الإعداد، يرسل عنصر التحكّم إشارة "الصفحة الرئيسية" صريحة إلى نشاط SUW للإعلان عن إخفاء SUW.

يحلّ هذا الإجراء المشاكل التي كان فيها تطبيق &quot;إعداد الجهاز&quot; يعرف أنّ المستخدم يحاول إخفاءه من خلال استهلاك نية الصفحة الرئيسية بدون الوصول إلى إشارة الصفحة الرئيسية من النظام.

إذا كانت لديك توقّعات مختلفة بشأن تصميم "تجربة الإعداد"، يمكنك تنفيذ السلوك المفضّل من خلال استبدال SetupPanelController بوحدة تحكّم مخصّصة.