设为首页 收藏本站
查看: 795|回复: 0

Windows Phone 7获取用户信息和设备信息

[复制链接]

尚未签到

发表于 2015-5-9 13:36:49 | 显示全部楼层 |阅读模式
  在Windows Phone 7中如何获取用户信息和设备信息呢?只需要使用Microsoft.Phone.Info命名空间下的UserExtendedProperties类和DeviceExtendedProperties类对应的成员函数就可以了。具体怎样操作?请看正文。
  获取用户信息
  使用UserExtendedProperties类的GetValueTryGetValue方法即可。目前这两个函数的入参,都只支持“ANID”。
  GetValue用法如下:


string anid = UserExtendedProperties.GetValue("ANID") as string;
string anonymousUserId = anid.Substring(2, 32);
  TryGetValue用法如下:

    object anid = new object();
    string anonymousUserId = "";
    if (UserExtendedProperties.TryGetValue("ANID", out anid))
    {
      anonymousUserId = anid as string;
      anonymousUserId = anonymousUserId.Substring(2, 32);
    }
  需要注意的是,如果你的WP7手机没有绑定Live ID,GetValue返回的字符串为null,TryGetValue返回的对象也为null。因此在项目中要注意对返回字符串和对象的非空判断。
  获取设备信息
  与获取用户信息相似,使用DeviceExtendedProperties类的GetValueTryGetValue方法,这两个方法的使用方式也与上面相同,不同的是入参。Windows Phone 7可以获取的设备信息如下:

属性名称值类型描述补充说明
  DeviceManufacturer

字符串
(最大长度256)
设备的生产厂商。该字符串没有标准格式。微软建议同一个厂商生产的手机使用相同的字符串,但这不是强制的。注意,该值也可能为空
DeviceName字符串
(最大长度256)
设备名称。该字符串没有标准格式。注意,该值也可能为空
  DeviceUniqueId

长度为20的byte数组设备的唯一标识。该值是唯一不变的,即使系统升级。注意,不要使用该值来标识用户,因为用户可能可以更换手机,同一手机也有可能被不同用户使用
DeviceFirmwareVersion一个字符串 当前设备运行的固件版本。如果安装了新版本的固件,该值将会增长。注意,该值也可能为空
  DeviceHardwareVersion

一个字符串 当前设备的硬件版本。注意,该值也可能为空
  DeviceTotalMemory

长整型设备物理内存的大小(单位是Byte)该值通常小于实际的RAM大小略小,因此可以用它来判断RAM是否够用。
  ApplicationCurrentMemoryUsage

长整型当前应用程序使用的内存(单位是Byte)可以用它来观察当前应用程序消耗内存的情况
  ApplicationPeakMemoryUsage

长整型当前应用程序使用内存的峰值(单位是Byte)可以用它来观察当前应用程序内存最大使用的情况
  先来看看获取设备厂商的方法:

string strDeviceManufacturer = DeviceExtendedProperties.GetValue("DeviceManufacturer").ToString();
  
  其它的设备信息获取都与设备厂商一样,把GetValue或TryGetValue的参数换一下就可以了。
  有一个有点不同,就是DeviceUniqueID。有时候我们就需要保存一个字符串来标识设别的唯一性就好了,用Byte数组有点麻烦,我在这里遍历了该数组,把它转为了一个长度为60的字符串,代码如下:

    byte[] byteArray = DeviceExtendedProperties.GetValue("DeviceUniqueId") as byte[];
    string strTemp = "";
    string strDeviceUniqueID = "";
    foreach (byte b in byteArray)
    {
      strTemp = b.ToString();
      if (1 == strTemp.Length)
      {
        strTemp = "00" + strTemp;
      }
      else if (2 == strTemp.Length)
      {
        strTemp = "0" + strTemp;
      }
      strDeviceUniqueID += strTemp;
    }
  
  我在Demo中的界面只放置了几个获取设备信息的Button和TextBlock,很多都一样,就没有都列出来,截个图供大家参考吧:
DSC0000.png
  上图是我在模拟器上运行的结果,无法绑定LiveID,所以用户信息一项取不到,为空。其它都正常。
  我在真机上测试都可以取到相关信息。:)
  为了方便大家使用,我把获取用户和设备信息的代码封装到了一个类中,都是Public的静态方法,直接就可以用了。
  下载Demo
  如果发现什么问题,请各位及时通知我,谢谢。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-65260-1-1.html 上篇帖子: Windows Phone 7 学习志(常见问题一:不能直接修改按钮Button背景色或前景色) 下篇帖子: Windows Phone 7 UI设计和交互规范随笔(2)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表