デバイス情報

この記事では、.NET マルチプラットフォーム アプリ UI (.NET MAUI) IDeviceInfo インターフェイスを使用して、アプリが実行されているデバイスに関する情報を読み取る方法について説明します。

インターフェイスの既定の IDeviceInfo 実装は、プロパティを DeviceInfo.Current 通じて使用できます。 インターフェイスとDeviceInfoクラスのIDeviceInfo両方が名前空間にMicrosoft.Maui.Devices含まれています。

デバイス情報の読み取り

インターフェイスには IDeviceInfo 、製造元やイディオムなど、デバイスを記述する多くのプロパティが用意されています。 次の例では、デバイス情報プロパティの読み取りを示します。

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.Name}");
    sb.AppendLine($"OS Version: {DeviceInfo.VersionString}");
    sb.AppendLine($"Refresh Rate: {DeviceInfo.Current}");
    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();
}

デバイス プラットフォームを取得する

このプロパティは IDeviceInfo.Platform 、アプリが実行されているオペレーティング システムを表します。 この型は DevicePlatform 、オペレーティング システムごとにプロパティを提供します。

  • DevicePlatform.Android
  • DevicePlatform.iOS
  • DevicePlatform.macOS
  • DevicePlatform.MacCatalyst
  • DevicePlatform.tvOS
  • DevicePlatform.Tizen
  • DevicePlatform.WinUI
  • DevicePlatform.watchOS
  • DevicePlatform.Unknown

プロパティがオペレーティング システムと一致するかどうかを DeviceInfo.Platform 確認する例を次に Android 示します。

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

デバイスの種類を取得する

このプロパティは DeviceInfo.Idiom 、デスクトップ コンピューターやタブレットなど、アプリが実行されているデバイスの種類を表します。 この型は DeviceIdiom 、デバイスの種類ごとにプロパティを提供します。

  • DeviceIdiom.Phone
  • DeviceIdiom.Tablet
  • DeviceIdiom.Desktop
  • DeviceIdiom.TV
  • DeviceIdiom.Watch
  • DeviceIdiom.Unknown

次の例では、値とプロパティの DeviceInfo.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
};

プラットフォームによる違い

このセクションでは、プラットフォーム固有の相違点とデバイス情報について説明します。

プラットフォームによる違いはありません。