从居家空间切换到完整空间

用户可在两种模式(Home Space 或 Full Space)下体验您的应用。在 Home Space 中,用户可以同时使用您的应用和其他应用,实现多任务处理。在全空间模式下,您的应用是用户体验的焦点,可充分利用 Android XR 的沉浸式功能。

空间化目前仅在“全空间”模式下受支持。您的应用可以过渡到全空间模式,以便利用空间和 3D 功能。当您的应用获得焦点时,您可以通过从 XR 会话请求相应模式,在这些模式之间进行转换。

除非您按照声明启动时的默认模式部分中所述的方式另行指定,否则您的应用会默认在主屏幕空间中打开。

居家空间与完整空间之间的转换

如需在主屏幕空间和全屏空间之间切换,您需要向 Session 请求操作模式。如以下示例所示,您可以使用这些请求,以便用户通过点击按钮在模式之间切换。

@Composable
private fun HomeSpaceFullSpaceToggleButton() {
    val xrSession = checkNotNull(LocalSession.current)

    val uiIsSpatialized = LocalSpatialCapabilities.current.isSpatialUiEnabled
    val toggleModes = if (uiIsSpatialized) {
        { xrSession.requestHomeSpaceMode() }
    } else {
        { xrSession.requestFullSpaceMode() }
    }

    IconButton(
        onClick = {
            toggleModes()
        }
    ) {
        Icon(
            painter = painterResource(id = drawable),
            contentDescription = stringResource(contentDescription)
        )
    }
}

请参阅设计指南,详细了解如何从主屏幕切换到全屏模式,以及如何在两者之间进行最佳切换。

声明启动默认模式

如需选择应用是在 Home 空间还是全屏空间中启动,请将以下几行代码添加到 Android 清单文件中:

// Launch in Full Space:
<property
   android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"
   android:value="XR_ACTIVITY_START_MODE_FULL_SPACE_MANAGED" />

// Or, launch in Home Space:
<property
   android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"
   android:value="XR_ACTIVITY_START_MODE_HOME_SPACE_MANAGED" />

另请参阅