views:

69

answers:

1

Hi, i'm developing applications for WM smartphones, such as motorola Q and the such. Is there any way to find in my code which phone i'm running on? Thanks, Dan

+2  A: 

From https://blogs.msdn.com/netcfteam/archive/2006/09/15/756755.aspx

    [DllImport("Coredll.dll", EntryPoint = "SystemParametersInfoW", CharSet = CharSet.Unicode)]
    static extern int SystemParametersInfo4Strings(uint uiAction, uint uiParam, StringBuilder pvParam, uint fWinIni);

    public enum SystemParametersInfoActions : uint
    {
        SPI_GETPLATFORMTYPE = 257, // this is used elsewhere for Smartphone/PocketPC detection
        SPI_GETOEMINFO = 258,
    }

    public static string GetOemInfo()
    {
        StringBuilder oemInfo = new StringBuilder(50);
        if (SystemParametersInfo4Strings((uint)SystemParametersInfoActions.SPI_GETOEMINFO,
            (uint)oemInfo.Capacity, oemInfo, 0) == 0)
            throw new Exception("Error getting OEM info.");
        return oemInfo.ToString();
    }
Bob