Windows Phone SDK v.7.1 introduced a class called DeviceStatus with a property called DeviceName which returns a model name of the device your app is running on. There were some variations and discrepancies with what different devices returned, but overall it was quite fine in the Windows Phone 7 world.
For reasons unknown to me Nokia decided that this was too good and their new Windows Phone 8 devices return model numbers like RM-820_nam_att_100, RM-821_eu_turkey_343, RM-845_nam_vzw_100, RM-821_eu_russia_216, RM-821_eu_finland_207, etc. As you can see all these “model names” include letters RM followed by some internal model number and then country/region and a mobile operator. Update: I’ve got a tip that the actual structure is <RM-Code>_<Region>_<Variant ID>
I was unable to find a single list that would decipher these model names so I’ve decided to compile my own by looking up each model number I’ve seen individually. So here goes:
- RM-820 and RM-821 are Lumia 920
- RM-824, RM-825 and RM-826 are Lumia 820
- RM-845 is Lumia 822 (exclusive to Verizon in US)
- RM-878 is Lumia 810 (exclusive to T-Mobile in US)
I’ve also seen RM-867 but couldn’t find what this stand for.
Things are a little better with HTC. They report “Windows Phone 8X by HTC” most of the time. Except for Verizon version where they decided to report “HTC6990LVW” instead.