如何使用 .NET 多平台应用 UI (.NET MAUI) IDeviceInfo 接口来读取有关运行应用的设备的信息。 
 
using Microsoft.Maui.Devices; 
 
private string ReadDeviceInfo() 
{ 
    System.Text.StringBuilder sb = new System.Text.StringBuilder(); 
 
    sb.AppendLine($"Model: {DeviceInfo.Current.Model},"); 
    sb.AppendLine($"Manufacturer: {DeviceInfo.Current.Manufacturer},"); 
    sb.AppendLine($"Name: {DeviceInfo.Current.Name},"); 
    sb.AppendLine($"OS Version: {DeviceInfo.Current.VersionString},"); 
    sb.AppendLine($"Idiom: {DeviceInfo.Current.Idiom},"); 
    sb.AppendLine($"Platform: {DeviceInfo.Current.Platform},"); 
 
    bool isVirtual = DeviceInfo.Current.DeviceType switch 
    { 
        DeviceType.Physical => false, 
        DeviceType.Virtual => true, 
        _ => false 
    }; 
 
    sb.AppendLine($"Virtual device? {isVirtual}"); 
 
    return sb.ToString(); 
} 
当前系统: 
 
Model: HP Pavilion Notebook, 
 
Manufacturer: HP, 
 
Name: STUDIO, 
 
OS Version: 10.0.22000.65, 
 
Idiom: Desktop, 
 
Platform: WinUI, 
 
Virtual device? False, 
 
Platform: WinUI 
 
 
获取设备平台 
 
属性 IDeviceInfo.Platform 表示运行应用的操作系统。 类型 DevicePlatform 为每个操作系统提供属性: 
 
DevicePlatform.Android 
 
DevicePlatform.iOS 
 
DevicePlatform.macOS 
 
DevicePlatform.MacCatalyst 
 
DevicePlatform.tvOS 
 
DevicePlatform.Tizen 
 
DevicePlatform.WinUI 
 
DevicePlatform.watchOS 
 
DevicePlatform.Unknown 
 
以下示例演示如何检查 属性是否 IDeviceInfo.Platform 与操作系统匹配 Android : 
 
private bool IsAndroid() => DeviceInfo.Current.Platform == DevicePlatform.Android; 
 
 
 
获取设备类型 
 
属性 IDeviceInfo.Idiom 表示运行应用的设备类型,例如台式计算机或平板电脑。 类型 DeviceIdiom 为每种类型的设备提供属性: 
 
DeviceIdiom.Phone 
 
DeviceIdiom.Tablet 
 
DeviceIdiom.Desktop 
 
DeviceIdiom.TV 
 
DeviceIdiom.Watch 
 
DeviceIdiom.Unknown 
 
以下示例演示如何将 IDeviceInfo.Idiom 值与 DeviceIdiom 属性进行比较: 
 
private void PrintIdiom() 
{ 
    if (DeviceInfo.Current.Idiom == DeviceIdiom.Desktop) 
        Console.WriteLine("The current device is a desktop"); 
    else if (DeviceInfo.Current.Idiom == DeviceIdiom.Phone) 
        Console.WriteLine("The current device is a phone"); 
    else if (DeviceInfo.Current.Idiom == DeviceIdiom.Tablet) 
        Console.WriteLine("The current device is a Tablet"); 
} 
 
 
 
设备类型 
 
IDeviceInfo.DeviceType 属性 一个枚举,用于确定应用程序是在物理设备还是虚拟设备上运行。 虚拟设备是指模拟器或仿真程序。 
 
bool isVirtual = DeviceInfo.Current.DeviceType switch 
{ 
    DeviceType.Physical => false, 
    DeviceType.Virtual => true, 
    _ => false 
}; 
 
 
 
有了以上工具,开发多设备通用的系统就易如反掌了。 |