Condividi tramite


Informazioni sul dispositivo

Sfogliare l'esempio. Esplorare l'esempio

Questo articolo descrive come usare l'interfaccia dell'interfaccia dell'interfaccia dell'app multipiattaforma .NET (.NET MAUI) IDeviceInfo per leggere le informazioni sul dispositivo in cui è in esecuzione l'app.

L'implementazione predefinita dell'interfaccia IDeviceInfo è disponibile tramite la DeviceInfo.Current proprietà . Sia l'interfaccia che DeviceInfo la IDeviceInfo classe sono contenute nello spazio dei Microsoft.Maui.Devices nomi .

Leggere le informazioni sul dispositivo

L'interfaccia IDeviceInfo fornisce molte proprietà che descrivono il dispositivo, ad esempio il produttore e il linguaggio. L'esempio seguente illustra la lettura delle proprietà delle informazioni sul 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();
}

Per accedere al nome del dispositivo assegnato dall'utente tramite la IDeviceInfo.Name proprietà in iOS 16 e versioni successive, anziché il nome del dispositivo generico, l'app deve soddisfare determinati criteri e avere il com.apple.developer.device-information.user-assigned-device-name diritto. Per altre informazioni, vedere com.apple.developer.device-information.user-assigned-device-name developer.apple.com.

Ottenere la piattaforma del dispositivo

La IDeviceInfo.Platform proprietà rappresenta il sistema operativo in cui è in esecuzione l'app. Il DevicePlatform tipo fornisce una proprietà per ogni sistema operativo:

Nell'esempio seguente viene illustrato il controllo se la IDeviceInfo.Platform proprietà corrisponde al Android sistema operativo:

private bool IsAndroid() =>
    DeviceInfo.Current.Platform == DevicePlatform.Android;

Ottenere il tipo di dispositivo

La IDeviceInfo.Idiom proprietà rappresenta il tipo di dispositivo in cui è in esecuzione l'app, ad esempio un computer desktop o un tablet. Il DeviceIdiom tipo fornisce una proprietà per ogni tipo di dispositivo:

Nell'esempio seguente viene illustrato il confronto del IDeviceInfo.Idiom valore con una DeviceIdiom proprietà :

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 di dispositivo

IDeviceInfo.DeviceType proprietà un'enumerazione per determinare se l'applicazione è in esecuzione in un dispositivo fisico o virtuale. Un dispositivo virtuale è un simulatore o un emulatore.

bool isVirtual = DeviceInfo.Current.DeviceType switch
{
    DeviceType.Physical => false,
    DeviceType.Virtual => true,
    _ => false
};

Differenze tra le piattaforme

Questa sezione descrive le differenze specifiche della piattaforma con le informazioni sul dispositivo.

Non esistono differenze per questa piattaforma.