読者です 読者をやめる 読者になる 読者になる

酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Windows ストア アプリを実行している端末の情報を取得する

Windows Store Apps

Windowsストアアプリを実行している環境の製造したメーカー名や製品名などの端末情報を取得するには、Windows.Security.ExchangeActiveSyncProvisioning名前空間のEasClientDeviceInformationクラスを使用します。

メーカー名や製品名を取得するコード例を以下に示します。

    // デバイス情報を取得する
    var deviceInfo = new Windows.Security.ExchangeActiveSyncProvisioning.EasClientDeviceInformation();

    // 製造メーカーを取得する
    var manufacter = deviceInfo.SystemManufacturer;

    // 製品名を取得する
    var prodactName = deviceInfo.SystemProductName;

    // OSの名前を取得する
    var os = deviceInfo.OperatingSystem;

iPhoneアプリやAndroidアプリをパラレルで開発している僕のメインマシンは「MacBook Pro with Retina Display」なのですが、Bootcampで導入したWindows 8では、上記のコードを実行しても端末情報を取得することはできませんでした(かろうじてOS名がWINDOWSであることは取得できました)。

Microsoft Corporation Surface RT

@tmytさんにMicrosoft Surface RTで上記のコードを実行した場合、どのような値が取得できるのか試してもらったところ、以下のような値を取得することができたようです。

  • SystemManufacturer (メーカー)
    • Microsoft
  • SystemProductName (製品名)
    • Surface with Windows RT
  • OperatingSystem (OS)
    • WINDOWS

Microsoft Corporation Surface with Windows 8 Pro

Surface Proでは、以下のような値を取得することができました。

  • SystemManufacturer (メーカー)
    • Microsoft Corporation
  • SystemProductName (製品名)
    • Surface with Windows 8 Pro
  • OperatingSystem (OS)
    • WINDOWS

追記 - ASUSTeK UX31E

@biacさんにASUS ZENBOOK UX31Eで試して頂きました。WindowsノートPCとして発売されているものであれば、この辺りの情報はそれなりに取得できそうですね。

  • SystemManufacturer (メーカー)
    • ASUSTeK Computer Inc.
  • SystemProductName (製品名)
    • UX31E

追記(2014/1/21) - LENOVO Miix 2 8 (LENOVO 20326)

LenovoのMiix2 8で試してみました。

  • SystemManufacturer (メーカー)
    • LENOVO
  • SystemProductName (製品名)
    • 20326

注意点

ただし、「MacBook Pro with Retina Display」にBootcampで導入したWindows 8では、上記のコードを実行しても端末情報を取得することはできませんでした。必ずしもメーカー名や製品名が取得できるものとして考えない方が良いでしょう。

「SystemManufacturer」や「SystemProductName」の値は、Geekbench Browserを使えば、ある程度の値を取得することができそうです。

関連記事

Windows Runtime API(WinRT API)を使ってアプリ開発する際に逆引きとしてお使いください。