고급 창 관리에서 홈 장면은 특정 홈 활동 대신 동시에 표시되고 상호작용 가능한 여러 앱 패널로 구성됩니다. 고급 창 관리는 홈 활동의 빈 버전을 사용하여 다중 창 작업의 표시 가능성 장벽 으로 사용합니다.
설정 마법사 (SUW)는 홈 작업으로 취급되는 경우가 많지만 더 일관되고 안정적인 홈 환경을 만들려면 패널의 일부로 SUW를 구성하는 것이 좋습니다.
홈 표시 가능성 장벽 구성
홈 표시 가능성 장벽 활동이 SUW 활동보다 홈 인텐트 필터의 우선순위가 높은 다이렉트 부팅 인식 홈 활동인지 확인합니다.
자세한 내용은 StubCarLauncher 패키지의 참조 플랫폼을 참고하세요.
빌드에 이 패키지를 포함하고 모든 사용자를 위해 설치하는 것이 좋습니다.
SUW 패널 구성
고유한 조건을 처리하고 기본 루트 작업 외부에서 전용 배치를 허용하려면 SUW를 전용 패널에 배치하는 것이 좋습니다. 이 패널의 경계와 레이어를 구성할 수 있습니다.
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 활동에 명시적 홈 신호를 보냅니다.
이렇게 하면 SUW가 홈 인텐트를 사용하지만 시스템의 홈 신호에 액세스하지 않고 사용자가 SUW를 숨기려고 시도하고 있음을 알고 있는 인스턴스가 해결됩니다.
SUW 디자인에 다른 기대치가 있는 경우 SetupPanelController를 맞춤 컨트롤러로 바꿔 원하는 동작을 구현할 수 있습니다.