[Windwos Phone 7] 获取设备相关信息

摘要:这个是对Windwos Phone 7目前能拿得到的设备信息的封装。


     /// <summary>
    /// Get Device Information for Windows Phone
    /// </summary>
    public class DeviceInfo  
    {
        private static readonly int ANIDLength = 32;
        private static readonly int ANIDOffset = 2;

        #region - DeviceManufacturer -

        //NOTE:The name of the manufacturer of the device. 
        //There is no standard format for this string. 
        //It is recommended that the same value be used by every device from a manufacturer,
        //but this is not enforced. This value may be empty.
        public static string GetManufacturer()
        {
            string result = string.Empty;
            object manufacturer;
            if (DeviceExtendedProperties.TryGetValue("DeviceManufacturer", out manufacturer))
                result = manufacturer.ToString();

            return result;
        }

        #endregion

        #region - DeviceName -

        //NOTE:The name of the device. 
        //There is no standard format for this string. 
        //This value may be empty.
        public static string GetDeviceName()
        {
            string result = string.Empty;
            object deviceName;
            if (DeviceExtendedProperties.TryGetValue("DeviceName", out deviceName))
                result = deviceName.ToString();

            return result;
        }

        #endregion

        #region - DeviceUniqueId -

        //Note: to get a result requires ID_CAP_IDENTITY_DEVICE  
        // to be added to the capabilities of the WMAppManifest  
        // this will then warn users in marketplace  
        public static byte[] GetDeviceUniqueID()
        {
            byte[] result = null;
            object uniqueId;
            if (DeviceExtendedProperties.TryGetValue("DeviceUniqueId", out uniqueId))
                result = (byte[])uniqueId;

            return result;
        }

        #endregion

        #region - DeviceFirmwareVersion -

        //NOTE: The firmware version running on the device. 
        //This is not the same as the OS version, which can be retrieved using System.Environment. 
        //It is recommended that the value be a string that can be parsed as a System.Version structure
        //and that it be incremented in a logical manner as newer firmware is installed, but this is not required. 
        //This value may be empty.
        public static Version GetDeviceFirmwareVersion()
        {
            string result = string.Empty;
            object deviceFirmwareVersion;
            if (DeviceExtendedProperties.TryGetValue("DeviceFirmwareVersion", out deviceFirmwareVersion))
                result = deviceFirmwareVersion.ToString();
            Version version = new Version(deviceFirmwareVersion.ToString());

            return version;
        }

        #endregion

        #region - DeviceHardwareVersion -

        //NOTE:The hardware version running of the device. 
        //This is not the same as the OS version, which can be retrieved using System.Environment. 
        //It is recommended that the value be a string that can be parsed as a System.Version structure 
        //and that it be incremented in a logical manner as newer hardware is released, but this is not required. 
        //This value may be empty.
        public static Version GetDeviceHardwareVersion()
        {
            string result = string.Empty;
            object deviceFirmwareVersion;
            if (DeviceExtendedProperties.TryGetValue("DeviceHardwareVersion", out deviceFirmwareVersion))
                result = deviceFirmwareVersion.ToString();
            Version version = new Version(deviceFirmwareVersion.ToString());

            return version;
        }

        #endregion

        #region - DeviceTotalMemory -

        //NOTE:The device’s physical RAM size in bytes. 
        //This value will be less than the actual amount of device memory, 
        //but can be used for determining memory consumption requirements.
        public static long GetDeviceTotalMemory()
        {
            long result = 0;
            object deviceTotalMemory;
            if (DeviceExtendedProperties.TryGetValue("DeviceTotalMemory", out deviceTotalMemory))
                result = Convert.ToInt64(deviceTotalMemory);

            return result;
        }

        #endregion

        #region - ApplicationCurrentMemoryUsage  -

        //NOTE:The current application’s memory usage in bytes.
        public static long GetApplicationCurrentMemoryUsage()
        {
            long result = 0;
            object applicationCurrentMemoryUsage;
            if (DeviceExtendedProperties.TryGetValue("ApplicationCurrentMemoryUsage", out applicationCurrentMemoryUsage))
                result = Convert.ToInt64(applicationCurrentMemoryUsage);

            return result;
        }

        #endregion

        #region - ApplicationPeakMemoryUsage -

        //NOTE:The current application’s peak memory usage in bytes.
        public static long GetApplicationPeakMemoryUsage()
        {
            long result = 0;
            object applicationPeakMemoryUsage;
            if (DeviceExtendedProperties.TryGetValue("ApplicationPeakMemoryUsage", out applicationPeakMemoryUsage))
                result = Convert.ToInt64(applicationPeakMemoryUsage);

            return result;
        }

        #endregion

        #region - WindowsLiveId -

        // NOTE: to get a result requires ID_CAP_IDENTITY_USER  
        //  to be added to the capabilities of the WMAppManifest  
        // this will then warn users in marketplace  
        public static string GetWindowsLiveAnonymousID()
        {
            string result = string.Empty;
            object anid;
            if (UserExtendedProperties.TryGetValue("ANID", out anid))
            {
                if (anid != null && anid.ToString().Length >= (ANIDLength + ANIDOffset))
                {
                    result = anid.ToString().Substring(ANIDOffset, ANIDLength);
                }
            }

            return result;
        }

        #endregion
    }

详细设备信息可以看MSDN

原文地址:https://www.cnblogs.com/ssqjd/p/1875153.html