> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 掌機裝置的其他考量

> 其他掌機指引，涵蓋底座模式偵測、保證可用的控制器輸入、GetSystemPowerStatus 電源管理，以及螢幕大小考量。

本文說明開發可在掌機裝置上有效執行的遊戲時，需要注意的其他事項。這些考量可補充 [針對掌機 Windows 裝置最佳化 GDK 遊戲](/zh-TW/build/gdk-and-engines/handheld/handheld-guidance) 中的檢查項目。

## 掌機的底座行為

某些掌機會在連接底座時遊玩。雖然沒有 API 可以檢查掌機是否已連接底座，但連接底座的裝置可能會連接外部顯示器。您可以使用 [EnumDisplayDevices](https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-enumdisplaydevicesa) 和 [EnumDisplaySettings](https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-enumdisplaysettingsa) API 檢查是否有外部顯示器。

當掌機裝置連接底座時，請使用下列方法檢查已連接的外部顯示器：

* 檢查是否有其他控制器。掌機的內建控制器一律可用，但使用者也可能連接其他控制器。
* 檢查已連接顯示器的螢幕大小。
* 虛擬鍵盤的建議仍然適用，因為控制器仍是主要的輸入機制。
* 某些玩家可能會連接滑鼠和鍵盤，就像他們在主機上的做法一樣。

## 保證可用的輸入

雖然各種遊戲掌機可能有其他輸入選項，但掌機裝置都具備下列輸入。

* A、B、X 和 Y 按鈕
* 左肩鍵和右肩鍵
* 左扳機鍵和右扳機鍵
* 左類比搖桿和右類比搖桿
* 方向鍵
* 功能表按鈕
* 檢視按鈕

無論裝置是否連接底座，請一律檢查所有已連接的控制器和輸入裝置。連接底座時，也請檢查檢視按鈕。

## 電源

若要檢查掌機裝置是否使用 AC 電源而非電池，請呼叫 [GetSystemPowerStatus](https://learn.microsoft.com/windows/win32/api/winbase/nf-winbase-getsystempowerstatus) 函式。它會顯示裝置是否使用 AC 電源，並提供電池充電狀態的摘要 (高、低、嚴重不足或充電中)。

請考量您的遊戲如何影響裝置的電池續航力，因為遊戲所需的電力並非總是顯而易見。[XBOX Sustainability Toolkit](https://aka.ms/SustainabilityToolkit) 中可能的省電建議也適用於掌機。

透過下列方式將省電效果最大化：

* 啟用 VSync，讓 GPU 有更多閒置時間並降低電力使用。
* 降低內部轉譯解析度並套用升頻處理。
* 降低畫面播放速率以節省電力。注意：較低的畫面播放速率可能會影響遊戲體驗。
* 在出現全螢幕功能表或 UI 元素，或遊戲暫停時，停止轉譯遊戲世界。
* 在偵測到輸入閒置且玩家沒有活動時暫停遊戲。

## 螢幕尺寸

雖然不同的遊戲掌機有不同的螢幕解析度，但您可以依賴下列標準：

* 螢幕對角線尺寸至少為 7 英吋 (17.8 公分)。
* 螢幕的長寬比為 16:9 或 16:10。

呼叫 [GetIntegratedDisplaySize](https://learn.microsoft.com/windows/win32/api/sysinfoapi/nf-sysinfoapi-getintegrateddisplaysize) 函式，以取得掌機內建顯示器的對角線尺寸。

## 掌機體驗最佳做法範例

為了提供更多關於針對掌機裝置建置和最佳化遊戲的深入見解，Microsoft 發佈了兩個範例：原生 C++ 範例和 Unity Managed C# 範例。兩者都提供一組類似的最佳做法，說明如何使用 API 管理遊戲的掌機體驗。

* 判斷裝置是否為掌機。
* 判斷裝置是使用電池電源、正在充電，還是使用外部電源。
* 查閱裝置專屬的屬性，包括內建顯示器的屬性。
* 處理 DPI 變更並據以縮放 UI。
* 使用虛擬鍵盤輸入文字。
* 查閱網路裝置和類型。
* 判斷網路和 Bluetooth® 連線能力。
* 處理來自控制器、鍵盤和滑鼠的輸入。
* 判斷輸入形式。例如，識別最近使用的輸入裝置。

隨著 Windows 新增有利於掌機遊戲案例的增強功能，以及為這些裝置建置遊戲的遊戲開發人員提供意見反應，Microsoft 會持續更新這些範例。

若要取得這些範例，請參閱下列資源：

* 原生 C++ 範例：[GitHub 上的 C++ 範例](https://aka.ms/hhexpsample)。
* Unity Managed C# 範例：[GitHub 上的 Unity Managed C# 範例](https://aka.ms/hhexpsample_unity)。


## Related topics

- [Handheld Compatibility 计划准则](/zh-CN/build/gdk-and-engines/handheld/handheld-guidance.md)
- [Windows 與 ROG XBOX Ally 總覽](/zh-TW/paths/windows/overview.md)
- [XR-045 XBOX 網路與帳戶權限](/zh-TW/publishing/certification/xr/xr-045.md)
- [XNetworkingQuerySecurityInformationForUrlAsync](/zh-CN/reference/networking/xnetworking/functions/xnetworkingquerysecurityinformationforurlasync.md)
- [XBOX 主機遊戲的認證測試 XBOX 需求](/zh-TW/publishing/certification/console-cert-tested-requirements.md)
