# 大屏幕和可折叠设备支持

> Contains information about the settings and APIs you can use to optimize your application for large screen and foldable Android devices.

在运行 Android 12 或更高版本的大屏幕和可折叠设备上，无论默认配置如何，应用程序都可以与其他应用程序同时以多窗口模式运行。如果您的应用程序专为特定的方向或宽高比而设计，或者不可调整大小，Android OS 会自动将其切换为[兼容性模式](https://developer.android.com/guide/topics/large-screens/large-screen-compatibility-mode)。在此模式下，Android OS 会缩放应用程序以适应可用的屏幕大小。但是，在某些情况下，应用程序可能无法针对特定屏幕大小进行优化，导致用户体验不佳。

**注意**：对于运行 Android 12 或更高版本的设备，[多窗口模式](https://developer.android.com/guide/topics/large-screens/multi-window-support)是默认行为。

为了确保一致的用户体验，请考虑设计能适应各种屏幕大小的应用程序，包括大屏幕和可折叠设备。可以使用以下设置和 API。

## Resizeable Activity Player 设置##resizeable-activity-player-setting

[**Resizeable Activity**](/engine/6000.0/manual/platform-specific/android/getting-started/class-player-settings.md#resizeable) Player 设置可在应用程序中启用多窗口模式，并可让 Android OS 将其视为可调整大小。对于新项目，Unity 默认启用此设置，并在 Android 清单文件中设置 `android.resizeableActivity="true"`。在这种情况下，将忽略宽高比限制。

如果选择设置 `android.resizeableActivity="false"`，Android OS 的行为方式如下：

| **Android OS 版本**    | **行为**                                  |
| -------------------- | --------------------------------------- |
| **早于 Android 12**    | 将应用程序显示为全屏并禁用多窗口模式。                     |
| **Android 12 及更高版本** | 默认情况下启用多窗口模式，并激活应用程序的兼容性模式，使其适应可用的屏幕尺寸。 |

在兼容性模式下，应用程序可能无法按预期显示。在诸如从大屏幕上的屏幕过渡至可折叠设备屏幕的情况下，操作系统可能会提示用户重新启动应用程序。重新启动应用程序会导致活动和整体应用程序状态丢失。

**注意**：在运行 Android 12 或更高版本的小屏幕设备上，可调整大小的应用程序支持基于 Activity 的 [minWidth](https://developer.android.com/reference/android/content/pm/ActivityInfo.WindowLayout#attr_android:minWidth) 和 [minHeight](https://developer.android.com/reference/android/content/pm/ActivityInfo.WindowLayout#attr_android:minHeight) 的多窗口模式。不可调整大小的应用程序不支持小屏幕设备上的多窗口模式。

## 应用程序和配置 API##application-and-configuration-apis

[AndroidApplication API](/engine/6000.0/script-reference/unity-engine-android/android-application.md) 在设备上运行时提供有关 Android 应用程序的信息。可以使用此 API 执行以下操作：

* 访问当前活动的 Java 实例。
* 在应用程序的 UI 线程或主线程上调用事件。
* 在设备上运行应用程序时检测和处理配置更改。

使用 [AndroidApplication.onConfigurationChanged](/engine/6000.0/script-reference/unity-engine-android/android-application/on-configuration-changed.md) 方法可以检测任何设备配置的更改情况。可以检索设备信息，例如屏幕布局、屏幕大小和方向。该方法还检索其他配置详细信息，例如屏幕是折叠还是展开、使用的键盘类型以及用户对语言和地区的偏好。有关可以检索哪些设备属性的更多信息，请参阅 [AndroidConfiguration API](/engine/6000.0/script-reference/unity-engine-android/android-configuration.md)。使用 [AndroidApplication.onConfigurationChanged](/engine/6000.0/script-reference/unity-engine-android/android-application/on-configuration-changed.md) 方法进行必要的调整，例如重新排列用户界面，以确保应用程序无缝适应不同的设备配置。

## 其他资源##android-16-behavior-changes-for-large-screen-devices

* [关于 resizeableActivity 的 Android 文档](https://developer.android.com/guide/topics/manifest/application-element#resizeableActivity)
