惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Help Net Security
Help Net Security
G
Google Developers Blog
雷峰网
雷峰网
WordPress大学
WordPress大学
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Engineering at Meta
Engineering at Meta
Security Latest
Security Latest
T
Threat Research - Cisco Blogs
AWS News Blog
AWS News Blog
F
Full Disclosure
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Exploit Database - CXSecurity.com
J
Java Code Geeks
U
Unit 42
C
Cyber Attacks, Cyber Crime and Cyber Security
V
V2EX
C
Cisco Blogs
博客园 - 司徒正美
Project Zero
Project Zero
L
LINUX DO - 热门话题
阮一峰的网络日志
阮一峰的网络日志
Blog — PlanetScale
Blog — PlanetScale
Scott Helme
Scott Helme
A
About on SuperTechFans
Hugging Face - Blog
Hugging Face - Blog
S
Securelist
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
S
Schneier on Security
G
GRAHAM CLULEY
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyberwarzone
Cyberwarzone
MongoDB | Blog
MongoDB | Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
T
Threatpost
Recorded Future
Recorded Future
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
N
News and Events Feed by Topic
人人都是产品经理
人人都是产品经理
The Register - Security
The Register - Security
S
Security Archives - TechRepublic
博客园 - Franky
N
News | PayPal Newsroom
Simon Willison's Weblog
Simon Willison's Weblog
S
SegmentFault 最新的问题
W
WeLiveSecurity
A
Arctic Wolf
B
Blog

博客园 - 十二号的国王

【iOS开发】在ARC项目中使用非ARC文件 实现ZUNE上软件商城的软件星级推荐效果 [Windows Phone 7]开发分享图片的插件(2) [Windows Phone 7]如何判断手机是否有网络连接 [Windows Phone 7]开发分享图片的插件(1) [Windows Phone 7]如何导航页面和页面间传值 [Windows Phone 7]UI对屏幕的自适应的处理 [Windwos Phone 7] Accelerometer - 十二号的国王 [Windows Phone 7] 常用资源(转) [Windows Phone 7] Storage XNA:保存数据到文件和从文件读取数据 XNA项目运行错误:No suitable graphics card found. POOM(Pocket Outlook Object Model)开发介绍及应用(转) 剪贴板剪切/复制与粘贴文件+1个待解决的问题 c#枚举-Enum C#读写INI配置文件(转) C#3.0新增特性 - 十二号的国王 关于DBNull vs 快捷键 - 十二号的国王
[Windwos Phone 7] 获取设备相关信息
十二号的国王 · 2010-11-11 · via 博客园 - 十二号的国王

摘要:这个是对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