Compartir vía


Información de dispositivos

Examinar ejemplo. Examinar el ejemplo

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:

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:

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.