How to detect if a UWP/Iot Core application is being run on an ARM processor or a desktop processor (x86/x64)? Alternatively, is there any other way to detect if the application is run on desktop Windows or on a device? It would also help to detect if the application was launched in Visual Studio or not.

I already tried the Windows.Security.ExchangeActiveSyncProvisioning.EasClientDeviceInformation class but it does not provide this information.

Googling has not taken me further.

  • 2
    I haven't done nearly as much UWP development as I should have. I think this looks about right: suchan.cz/2015/08/uwp-quick-tip-getting-device-os-and-app-info . Could you take a quick look and confirm whether it's what you're after (specifically Package.Current.Id.Architecture.ToString())?
    – goobering
    Oct 14 '16 at 12:24
  • @goobering : thank you! You should have written that as an answer as it completely solved my problem!
    – Petri K
    Oct 14 '16 at 13:21
  • Note that this probably isn't as reliable as you want--some full-sized computers run ARM (Chromebooks, apparently some forthcoming blade servers), and Android can run on Atom. Oct 14 '16 at 21:59
  • @chrylis : thank you for the comment! In our case, we actually implemented the functionality with the OS family information also provided by the Package class (as suggested in the answer of @goobering). This is not about anything going to production, it is just to ease things to university students programming our device.
    – Petri K
    Oct 16 '16 at 10:26

This article on suchan.cz describes how to access several system details in a UWP application:

  • current OS family - phone/desktop/...
  • current OS build number - 10.0.10240.16413
  • current OS architecture - x86/x64/ARM
  • current App Display Name - Battery Tile for instance
  • current App Version -
  • current Device manufacturer - Nokia
  • current Device model - Lumia 1520

Specifically, the code used to access the system architecture is:

// get the package architecure
    Package package = Package.Current;
    string systemArchitecture = package.Id.Architecture.ToString();
  • Package is in namespace Windows.ApplicationModel
    – erict
    Oct 31 '19 at 19:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.