在 .NET MAUI 中通过 Microsoft.Maui.ApplicationModel.DeviceInfo 类可跨平台获取设备信息,支持 Platform、Idiom、Manufacturer、Model、VersionString 和 Name(iOS 16+ 需配置 entitlement)等属性,并建议结合 Idiom 与屏幕指标进行响应式适配。
在 .NET MAUI 中获取设备信息,主要通过 Microsoft.Maui.ApplicationModel.DeviceInfo 类实现,无需第三方库或平台特定代码,开箱即用。
DeviceInfo 提供跨平台的只读属性,涵盖系统、设备和运行环境的关键标识:
Platforms.iOS、Platforms.Android、Platforms.WinUI 或 Platforms.MacCatalyst,用于条件逻辑分支DeviceIdiom.Phone、DeviceIdiom.Tablet、DeviceIdiom.Desktop,适配 UI 布局很实用DeviceInfo.Version(Version 对象)更易读从 iOS 16 起,若需获取用户在「设置 → 通用 → 关于本机 → 名称」中设置的设备名(而非默认的 "iPhone" 或 "iPad"),需额外配置:
Entitlements.plist 中启用 com.apple.developer.device-information.user-assigned-device-name 权限DeviceInfo 本身不提供屏幕尺寸或方向,但可配合其他 API 构建完整设备画像:
DeviceInfo.Idiom 判断是手机还是平板,再结合 WindowSize 或 DisplayInfo.Current.Width 做精细适配DisplayInfo.MainDisplayInfoChanged 事件响应横竖屏切换DeviceInfo.Platform == Platforms.Android 做所有判断,应优先用 Idiom 和实际屏幕指标,更符合响应式设计原则部分属性在模拟器/*器中返回值受限或不准确:
DeviceInfo.Name 默认为 "iPhone Simulator",即使配置了 en
DeviceInfo.Idiom 在折叠屏设备上可能返回 Phone 或 Tablet,取决于当前展开状态,建议搭配 FoldableInfo 使用基本上就这些。用好 DeviceInfo 的核心是区分“平台类型”和“设备形态”,别把 Platform 当成 UI 适配唯一依据。