Información de dispositivos
En este artículo se describe cómo puedes usar la interfaz .NET Multi-platform App UI (.NET MAUI) IDeviceInfo para leer información sobre el dispositivo en el que se ejecuta la aplicación.
La implementación predeterminada de la interfaz IDeviceInfo
está disponible a través de la propiedad DeviceInfo.Current. Tanto la interfaz IDeviceInfo
como la clase DeviceInfo
están contenidas en el espacio de nombres Microsoft.Maui.Devices
.
Lectura de la información del dispositivo
La IDeviceInfo
interfaz proporciona muchas propiedades que describen el dispositivo, como el fabricante y la expresión. En el siguiente ejemplo se muestra cómo leer las propiedades de información del dispositivo:
private void 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}");
DisplayDeviceLabel.Text = sb.ToString();
}
Para acceder al nombre de dispositivo asignado por el usuario a través de la propiedad IDeviceInfo.Name en iOS 16 y versiones posteriores, en lugar del nombre genérico del dispositivo, la aplicación debe cumplir ciertos criterios y debe tener asignado el derecho com.apple.developer.device-information.user-assigned-device-name
. Para obtener más información, consulta com.apple.developer.device-information.user-assigned-device-name
en developer.apple.com.
Obtención de la plataforma del dispositivo
La propiedad IDeviceInfo.Platform
representa el sistema operativo en el que se ejecuta la aplicación. El tipo DevicePlatform proporciona una propiedad para cada sistema operativo:
- DevicePlatform.Android
- DevicePlatform.iOS
- DevicePlatform.macOS
- DevicePlatform.MacCatalyst
- DevicePlatform.tvOS
- DevicePlatform.Tizen
- DevicePlatform.WinUI
- DevicePlatform.watchOS
- DevicePlatform.Unknown
En el ejemplo siguiente se muestra cómo comprobar si la propiedad IDeviceInfo.Platform coincide con el sistema operativo Android
:
private bool IsAndroid() =>
DeviceInfo.Current.Platform == DevicePlatform.Android;
Obtención del tipo de dispositivo
La propiedad IDeviceInfo.Idiom representa el tipo de dispositivo en el que se ejecuta la aplicación, como un equipo de escritorio o una tableta. El tipo DeviceIdiom proporciona una propiedad para cada tipo de dispositivo:
- DeviceIdiom.Phone
- DeviceIdiom.Tablet
- DeviceIdiom.Desktop
- DeviceIdiom.TV
- DeviceIdiom.Watch
- DeviceIdiom.Unknown
En el siguiente ejemplo se muestra la comparación del valor IDeviceInfo.Idiom
con una propiedad 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");
}
Tipo de dispositivo
La propiedad IDeviceInfo.DeviceType muestra una enumeración para determinar si la aplicación se ejecuta en un dispositivo físico o virtual. Un dispositivo virtual es un simulador o emulador.
bool isVirtual = DeviceInfo.Current.DeviceType switch
{
DeviceType.Physical => false,
DeviceType.Virtual => true,
_ => false
};
Diferencias entre plataformas
En esta sección se describen las diferencias específicas de la plataforma con la información del dispositivo.
No hay diferencias entre las plataformas.