# 大画面および折りたたみデバイスのサポート

> 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 プレイヤー設定##resizeable-activity-player-setting

[**Resizeable Activity**](/engine/6000.0/manual/platform-specific/android/getting-started/class-player-settings.md#resizeable) プレイヤー設定により、アプリケーションでマルチウィンドウモードが有効になり、Android OS がサイズ変更可能とみなすことが可能になります。新しいプロジェクトの場合、Unity はこの設定をデフォルトで有効にし、Android マニフェストファイルに `android.resizeableActivity="true"` を設定します。この場合、アスペクト比の制限は無視されます。

`android.resizeableActivity="false"` を設定すると、Android OS の動作は以下のようになります。

| **Android OS バージョン** | **動作**                                                            |
| -------------------- | ----------------------------------------------------------------- |
| **Android 12 より前**   | アプリケーションを全画面表示し、マルチウィンドウモードを無効にします。                               |
| **Android 12 以降**    | デフォルトでマルチウィンドウモードを有効にし、アプリケーションの互換性モードをアクティブにして、使用可能な画面サイズに調整します。 |

互換性モードでは、アプリケーションが期待どおりに表示されない可能性があります。大画面と折りたたみ式のデバイス間で画面を切り替える場合など、OS がユーザーにアプリケーションの再起動を促すプロンプトを表示することがあります。アプリケーションを再起動すると、アクティビティとアプリケーション全体の状態が失われます。

**ノート**: Android 12 以降のバージョンを実行する小型画面のデバイスでは、サイズ変更可能なアプリケーションは、アクティビティの [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)
