<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_Embedded Your Life</title><subtitle type="text">Mobile Our Future</subtitle><id>http://feed.cnblogs.com/blog/u/44652/rss</id><updated>2012-05-25T00:50:20Z</updated><author><name>施炯</name><uri>http://www.cnblogs.com/dearsj001/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dearsj001/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/44652/rss"/><entry><id>http://www.cnblogs.com/dearsj001/archive/2012/05/25/WindowsPhoneDevNotes_AccereDifference.html</id><title type="text">Windows Phone Dev Notes-关于WP7 OS 7.0和7.1的加速度传感器数据获取方法差异</title><summary type="text">对于加速度传感器，数据获取是一个最基本的事件。但是OS 7.0和OS7.1版本有所差异</summary><published>2012-05-25T00:50:00Z</published><updated>2012-05-25T00:50:00Z</updated><author><name>施炯</name><uri>http://www.cnblogs.com/dearsj001/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dearsj001/archive/2012/05/25/WindowsPhoneDevNotes_AccereDifference.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dearsj001/archive/2012/05/25/WindowsPhoneDevNotes_AccereDifference.html"/><content type="html">&lt;p&gt;&lt;span style="font-family: Comic Sans MS; font-size: 18pt;"&gt; 问&lt;/span&gt;&lt;span style="font-family: Comic Sans MS; font-size: 18pt;"&gt;题描述&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 对于加速度传感器，数据获取是一个最基本的事件。但是OS 7.0和OS7.1版本有所差异。这个问题源于中文技术论坛上的一个帖子：&lt;a href="http://social.msdn.microsoft.com/Forums/zh-CN/windowsphonezhchs/thread/943a4464-66c9-43a4-a9f3-1dfda28117e4"&gt;关于Accelerometer中CurrentValueChanged事件兼容性问题&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Comic Sans MS; font-size: 18pt;"&gt;分析&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 从《MSDN：&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.devices.sensors.accelerometer(v=vs.92).aspx"&gt;Accelerometer Class&lt;/a&gt;》网页上来看，在目前的WP 7.5 OS中，ReadingChanged已经弃用，请改用&lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh239103(v=vs.92).aspx"&gt;CurrentValueChanged。&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 对于&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.devices.sensors.accelerometer.readingchanged(v=vs.92).aspx"&gt;ReadingChanged&lt;/a&gt;，是这么解释的：&lt;strong&gt;Obsolete.&lt;/strong&gt;&lt;span&gt;Occurs when new data arrives from the accelerometer. This method is deprecated in the current release. Applications should use the&lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh239103(v=vs.92).aspx"&gt;CurrentValueChanged&lt;/a&gt;&lt;/span&gt; event of the&lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh239315(v=vs.92).aspx"&gt;SensorBase&lt;span&gt;&amp;lt;&lt;/span&gt;TSensorReading&lt;span&gt;&amp;gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt; class instead.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Comic Sans MS; font-size: 18pt;"&gt;结论&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WP SDK 7.1新建项目时，可以选择目标是OS 7.0 或者是 OS 7.1的。如果要为mango以前的系统写app进行调试，应该选择OS 7.1，对应于&lt;span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh239103(v=vs.92).aspx"&gt;CurrentValueChanged&lt;/a&gt;&lt;/span&gt;事件，而OS 7.0，还是使用&lt;/p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.devices.sensors.accelerometer.readingchanged(v=vs.92).aspx"&gt;ReadingChanged&lt;/a&gt;事件。&lt;/span&gt;&lt;img src="http://www.cnblogs.com/dearsj001/aggbug/2517432.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dearsj001/archive/2012/05/25/WindowsPhoneDevNotes_AccereDifference.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dearsj001/archive/2012/04/07/EmbeddedMVP.html</id><title type="text">当选Windows Embedded方向MVP</title><summary type="text">获得2012年4月的Windows Embedded方向MVP。</summary><published>2012-04-07T06:19:00Z</published><updated>2012-04-07T06:19:00Z</updated><author><name>施炯</name><uri>http://www.cnblogs.com/dearsj001/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dearsj001/archive/2012/04/07/EmbeddedMVP.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dearsj001/archive/2012/04/07/EmbeddedMVP.html"/><content type="html">&lt;p&gt;今年非常的幸运，再一次获得了MVP的荣誉，只是方向换到了Windows Embedded。&lt;/p&gt;&lt;p&gt;感谢博客园，感谢微软中文技术论坛，感谢一路支持的亲朋好友。&amp;nbsp;&lt;/p&gt;&lt;p&gt;MVP的精神是帮助和分享，我会继续努力。&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/dearsj001/aggbug/2435946.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dearsj001/archive/2012/04/07/EmbeddedMVP.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dearsj001/archive/2012/03/28/JiangNanIOT.html</id><title type="text">走访江南大学物联网工程学院</title><summary type="text">记录了本次江南大学物联网工程学院的调研活动。</summary><published>2012-03-28T08:32:00Z</published><updated>2012-03-28T08:32:00Z</updated><author><name>施炯</name><uri>http://www.cnblogs.com/dearsj001/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dearsj001/archive/2012/03/28/JiangNanIOT.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dearsj001/archive/2012/03/28/JiangNanIOT.html"/><content type="html"> &lt;p&gt;&lt;span style="font-family: 仿宋_GB2312; font-size: 12pt;"&gt;&lt;span style="font-family: 仿宋_GB2312; font-size: 12pt;"&gt; 2012&lt;/span&gt;&lt;span style="font-family: 仿宋_GB2312; font-size: 12pt;"&gt;年3月19日&lt;/span&gt;&lt;span style="font-family: 仿宋_GB2312; font-size: 12pt;"&gt;，电信学院书记张增年、副院长王遵义带队，与物联网新专业建设小组成员吕昂老师、施炯老师共同走访了江南大学物联网工程学院，学习国内第一批物联网工程专业兄弟院校的人才培养模式、专业实验室建设方案，为我院物联网新专业建设提供一定的借鉴和指导。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 仿宋_GB2312; font-size: 12pt;"&gt;本次走访受到了江南大学物联网工程学院毛力副院长和沈艳霞副院长的热情接待。首先，沈副院长介绍了学院的概况。在谈到物联网工程专业的本科教学时，沈副院长强调，本着&amp;#8220;重基础、宽口径&amp;#8221;的指导思想，充分利用学院在本科专业基础教学上的优势，为学生搭建一个&amp;#8220;大平台&amp;#8221;，在大二阶段，抓好学生们的数电、模电等专业基础课。在大三上阶段，注重训练学生的综合素质与实际动手能力。在大三下阶段，将学生交给对口的企业联合培养，为学生一对一地分配企业导师，按照企业的标准和要求，接触实际的产品和项目，为找工作积累实际经验。因为目前无锡的物联网产业园非常需要基础扎实的学生，跟踪相关的标准，进行产品的研发。然后，老师们实地参观了&amp;#8220;商品分拣系统&amp;#8221;实验室、无线传感网与接入技术实验室、微波微带实验室和大学生创新实践基地。在大学生创新实践基地中，物联网产业园区的部分企业也设立了一些高校合作项目，让学生们参与，其中不乏英飞凌、诺基亚等跨国企业。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 仿宋_GB2312; font-size: 12pt;"&gt;江南大学这种与企业紧密结合的人才培养模式和实训式的实验室建设，值得学习与借鉴。据悉电信学院对物联网新专业的建设非常重视，专门成立了新专业建设小组，已召开三次专业建设研讨会并参观调研了三家宁波本地的物联网企业，新专业建设的各项工作正在紧锣密鼓地开展。&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/dearsj001/aggbug/2421509.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dearsj001/archive/2012/03/28/JiangNanIOT.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dearsj001/archive/2012/03/27/WindowsPhoneSDK7_1_1Update.html</id><title type="text">Windows Phone SDK 7.1.1 Update正式版发布</title><summary type="text">微软发布Windows Phone SDK 7.1.1 Update正式版，支持256M内存设备应用开发。</summary><published>2012-03-26T23:50:00Z</published><updated>2012-03-26T23:50:00Z</updated><author><name>施炯</name><uri>http://www.cnblogs.com/dearsj001/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dearsj001/archive/2012/03/27/WindowsPhoneSDK7_1_1Update.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dearsj001/archive/2012/03/27/WindowsPhoneSDK7_1_1Update.html"/><content type="html">&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 本次更新主要包含了对256M内存设备的支持，包含了256M设备的模拟器，并且更新了512M内存模拟器的版本。&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; 安装此更新，是建立在WP SDK7.1的基础上。如果此前安装了Windows Phone SDK 7.1.1 CTP版本的，也可以直接安装正式版。&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; 网页链接地址如下：&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=29233"&gt;http://www.microsoft.com/download/en/details.aspx?id=29233 &lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/dearsj001/aggbug/2418909.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dearsj001/archive/2012/03/27/WindowsPhoneSDK7_1_1Update.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dearsj001/archive/2012/01/06/ChinaMobileMarket.html</id><title type="text">移动MM首届手机软件设计及创意大赛决赛取得圆满成功</title><summary type="text">热烈祝贺浙江万里学院移动MM首届手机软件设计及创意大赛决赛取得圆满成功。</summary><published>2012-01-06T05:55:00Z</published><updated>2012-01-06T05:55:00Z</updated><author><name>施炯</name><uri>http://www.cnblogs.com/dearsj001/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dearsj001/archive/2012/01/06/ChinaMobileMarket.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dearsj001/archive/2012/01/06/ChinaMobileMarket.html"/><content type="html"> &lt;p align="center"&gt;&lt;span style="color: black; font-family: 宋体; font-size: 12pt;"&gt;&lt;img style="width: 727.33px; height: 486.77px;" border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/dearsj001/1.jpg" width="727" height="486" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;span style="color: black; font-family: 宋体; font-size: 12pt;"&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/dearsj001/2.jpg" width="728" height="544" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="color: black; font-family: 宋体; font-size: 12pt;"&gt;2011&lt;/span&gt;&lt;span style="color: black; font-family: 宋体; font-size: 12pt;"&gt;年05月17日&lt;/span&gt;&lt;span style="color: black; font-family: 宋体; font-size: 12pt;"&gt;，浙江万里学院钱湖校区学术报告厅人头攒动，座无虚席，他们今天如期迎来了浙江万里学院移动MM首届手机软件设计及创意大赛的总决赛，本次大赛分为手机软件设计大赛和手机软件创意大赛两个部分。&lt;/span&gt;&lt;span style="color: black; font-family: 宋体; font-size: 12pt;"&gt;大赛得到了学院领导的高度重视，与会学院领导有电子信息学院院长梁丰、学生事务与发展中心副主任周宇飞、林德操，电子信息学院党总支书记副院长张增年、副院长王遵义，中国移动通信集团鄞州分公司总经理盛明灏、副总经理杨智伟崴等主要领导参加了本次大赛。&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="color: black; font-family: 宋体; font-size: 12pt;"&gt;本次大赛由&lt;/span&gt;&lt;span style="color: black; font-family: 宋体; font-size: 12pt;"&gt;电子信息学院&lt;/span&gt;&lt;span style="color: black; font-family: 宋体; font-size: 12pt;"&gt;礼仪先生吴金鹏同学主持，首先由&lt;/span&gt;&lt;span style="color: black; font-family: 宋体; font-size: 12pt;"&gt;电子信息学院院长梁丰教授致辞，&lt;/span&gt;&lt;span style="color: black; font-family: 宋体; font-size: 12pt;"&gt;他对本次大赛给予了高度评价，并殷切的希望通过本次大赛促进校风、学风的建设。接下来由浙江万里MM学院执行院长梁丰和盛明灏揭幕了移动MM学院题词。在接下来的比赛中同学们通过激烈的比赛和热情洋溢的讲解，博得了现场观众的阵阵掌声和专家们的一致好评。最后盛明灏点评了本场大赛并作了讲话，他对学生的积极参与表示了高度赞赏，对获奖的团队表示了祝贺，并为同学们在方案设计阶段表现出来的灵感、创新意识所折服，&lt;/span&gt;&lt;span style="color: black; font-family: 宋体; font-size: 12pt;"&gt;同时对此次合作表示满意，并&lt;/span&gt;&lt;span style="color: black; font-family: 宋体; font-size: 12pt;"&gt;希望学生和指导老师能继续后续阶段的开发。会后一行人与获奖的学生进行了深入的交流和探讨。&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="color: black; font-family: 宋体; font-size: 12pt;"&gt;这次大赛的实践证明举办软件大赛，对于提高大学生自主创新能力，发掘创新人才，促进学生创新创业的发展，具有重大的推动作用。我们相信，在校领导关心、支持下，在浙江万里学院创新创业大背景下，在全院师生的支持和积极参与下，我们会认真总结经验和不足，努力把移动MM手机软件设计大赛越办越好，办出特色，一年更上一层楼!&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="color: black; font-family: 宋体; font-size: 12pt;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/dearsj001/aggbug/2314413.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dearsj001/archive/2012/01/06/ChinaMobileMarket.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dearsj001/archive/2011/12/27/WindowsPhoneSDK7_For_Chinese.html</id><title type="text">Windows Phone SDK 7.1 中文版本发布</title><summary type="text">Windows Phone SDK 7.1 中文版本发布。</summary><published>2011-12-27T05:10:00Z</published><updated>2011-12-27T05:10:00Z</updated><author><name>施炯</name><uri>http://www.cnblogs.com/dearsj001/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dearsj001/archive/2011/12/27/WindowsPhoneSDK7_For_Chinese.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dearsj001/archive/2011/12/27/WindowsPhoneSDK7_For_Chinese.html"/><content type="html">&lt;p&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 自2011年9月底推出Windows Phone SDK&amp;nbsp;7.1 RTM版本之后，很多国内的开发者焦急地等待着中文版本的推出。因为很多装了中文VS2010的用户，在安装英文版本的Windows Phone SDK 7.1之后，碰到了各种各样的问题。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 等待了近3个月的时间，在2012年新年即将到来之际，我们终于等到了Windows Phone SDK 7.1 中文版本的发布。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在Microsoft Download Center中的地址如下：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=0a373422-6680-46a7-89e1-e9a468a14259"&gt;http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=0a373422-6680-46a7-89e1-e9a468a14259&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 其内容包含：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#8226;用于 Windows Phone 的 Microsoft Visual Studio 2010 学习版&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#8226;Windows Phone Emulator&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#8226;Windows Phone SDK 7.1 程序集&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#8226;Silverlight 4 SDK 和 DRT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#8226;用于 XNA Game Studio 4.0 的 Windows Phone SDK 7.1 扩展&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#8226;用于 Windows Phone 7 的 Microsoft Expression Blend SDK&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#8226;用于 Windows Phone OS 7.1 的 Microsoft Expression Blend SDK&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#8226;用于 Windows Phone 的 WCF Data Services 客户端&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#8226;用于 Windows Phone 的 Microsoft Advertising SDK&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 当然，为了安装方便，我们也可以直接下载ISO文件，在本地进行安装，下载地址如下：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=226694"&gt;http://go.microsoft.com/fwlink/?LinkID=226694&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 相信这次中文开发工具的推出，会给国内开发者带来极大的动力。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 其实，这半年来，MSDN页面上更新最频繁的就是Windows Phone相关的内容。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 如，Windows Phone 中文开发中心：&lt;a href="http://msdn.microsoft.com/zh-cn/windowsphone/"&gt;http://msdn.microsoft.com/zh-cn/windowsphone/&lt;/a&gt;；各种 Windows Phone 相关的活动：Windows Phone 7 校园开拓者、CodeJam、Windows Phone 7 应用征集等等。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;img src="http://www.cnblogs.com/dearsj001/aggbug/2303394.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dearsj001/archive/2011/12/27/WindowsPhoneSDK7_For_Chinese.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dearsj001/archive/2011/12/25/Renren4WP7.html</id><title type="text">人人网 Windows Phone 7 应用开发起步</title><summary type="text">图文解说WP7平台上进行Renren应用开发的准备工作。</summary><published>2011-12-25T11:30:00Z</published><updated>2011-12-25T11:30:00Z</updated><author><name>施炯</name><uri>http://www.cnblogs.com/dearsj001/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dearsj001/archive/2011/12/25/Renren4WP7.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dearsj001/archive/2011/12/25/Renren4WP7.html"/><content type="html">&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 目前，人人网在国内高校学生中的普及率非常高。前段时间，大概是11月下旬的样子，人人网发布了Windows Phone 7客户端的公测版。我想，Windows Phone 7本地化的优劣，直接关系到其将来在国内的市场份额。而诸如人人等针对学生群体的SNS应用，也将影响到高校学生对WP7平台的认可程度。人人的WP7公测版大家可以去&lt;a href="http://page.renren.com/601015709/note/781864184?ref=minifeed&amp;amp;sfet=2012&amp;amp;fin=0&amp;amp;ff_id=601015709&amp;amp;feed=page_blog&amp;amp;tagid=781864184&amp;amp;statID=page_601015709_2&amp;amp;level=1"&gt;网站上&lt;/a&gt;下载，如果没有WP7设备，也可以通过SDK中的Application Deployment工具部署到模拟器上进行试用。这里给出WP7平台开发人人应用的相关流程。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;&lt;font style="background-color: #ffff00"&gt;1. 注册人人网应用开发API Key&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 登录人人主页，点击页面下方的&amp;#8220;开放平台&amp;#8221;链接，如下图1所示：&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/201112251929545458.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/201112251929541031.png" width="674" height="196"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;图1：开放平台链接&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在基本信息页面中完善相关资料，包括开发者类型、开发者名称、所在地区等等，如下图2所示：&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/20111225192955507.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="1" border="0" alt="1" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/201112251929553572.jpg" width="675" height="468"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;图2：完善开发者信息&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 填写完成后，去邮箱查阅邮件，点击确认链接，激活开发者账户，如下图3所示：&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/201112251929553605.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="2" border="0" alt="2" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/201112251929556670.jpg" width="673" height="213"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;图3：邮件激活开发者账户&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在弹出的窗口中选择开发的应用类型，如果是移动设备的应用，一般选择&amp;#8220;客户端&amp;#8221;，如下图4所示：&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/201112251929567051.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="3" border="0" alt="3" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/201112251929569244.jpg" width="472" height="232"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;图4：选择应用类型&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 之后，我们就可以看到应用程序的管理页面，其属性中包含了API Key和Secret Key，如下图5所示：&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/201112251929562657.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="4" border="0" alt="4" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/20111225192957182.jpg" width="669" height="453"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;图5：应用管理页面&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font style="background-color: #ffff00"&gt;2. 下载WP7平台的RenrenSDK&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 我们可以登录Renren的Wiki，去下载WP7平台的SDK源代码，链接地址为：&lt;a title="http://wiki.dev.renren.com/wiki/SDK" href="http://wiki.dev.renren.com/wiki/SDK"&gt;http://wiki.dev.renren.com/wiki/SDK&lt;/a&gt;，在页面中选择Windows Phone 7 SDK，如下图6所示：&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/201112251929575199.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/201112251929571328.png" width="674" height="319"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;图6：RenrenSDK下载页面&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 打开下载的压缩包，我们可以发现，它包含一个开发说明文档目录、一个SDK源代码目录和一个Sample目录，如下图7所示：&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/201112251929577216.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/201112251929588329.png" width="678" height="158"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;图7：RenrenSDK文件目录&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 利用Visual Studio打开，我们可以发现该Solution中包含了两个Project，一个是封装Renren Lib的源代码工程，另一个则是使用该lib的Sample工程。从其组织上来看，应该是按时下流行的Model-View-ViewModel结构来写的，具体如下图8所示：&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/201112251929587806.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/201112251929587316.png" width="688" height="437"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;图8：RenrenSDK工程界面&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font style="background-color: #ffff00"&gt;3. API Key 的修改&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 直接下载得到的工程中，已经包含了人人网应用的API Key和Secret Key，直接编译就可以运行调试，从登陆的界面中，我们可以看到该应用的名称为phone7 sdk开发，如下图9所示。&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/201112251929582016.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/201112251929593445.png" width="330" height="547"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;图9：例子工程的名称&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 当然，我们可以将自己申请得到的API Key和Secret Key放入工程中，具体的文件为&amp;#8220;SDK Sample\app.xaml.cs&amp;#8221;和&amp;#8220;RenrenSDKLibrary\Constants\ConstantValue.cs&amp;#8221;，将其中相关的API Key和Secret Key进行替代，图下图10所示：&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/20111225192959413.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/201112251929599890.png" width="773" height="437"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/201112251929594906.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201112/201112251930007132.png" width="773" height="325"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;图10：API Key和Secret Key的替换&lt;/p&gt;   &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font style="background-color: #ffff00"&gt;&lt;strong&gt;4. SDK Lib包含的相关API&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这部分内容可以参考doc文档，当然，文档里面写的内容只是罗列了这些函数，具体如何使用，还需要我们自己参考Sample中相关的方法。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div align="center"&gt; &lt;table border="1" cellspacing="0" cellpadding="0" align="center"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width="121"&gt; &lt;p&gt;&lt;b&gt;接口名&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt; &lt;td width="236"&gt; &lt;p&gt;&lt;b&gt;回调参数类型&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt; &lt;td width="123"&gt; &lt;p&gt;&lt;b&gt;功能&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt; &lt;td width="138"&gt; &lt;p&gt;&lt;b&gt;说明&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width="121"&gt; &lt;p&gt;Login&lt;/p&gt;&lt;/td&gt; &lt;td width="236"&gt; &lt;p&gt;LoginCompletedEventArgs&lt;/p&gt;&lt;/td&gt; &lt;td width="123"&gt; &lt;p&gt;授权页面方式登录&lt;/p&gt;&lt;/td&gt; &lt;td width="138"&gt; &lt;p&gt;弹出授权页面，完成登录并获取sessionKey&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width="121"&gt; &lt;p&gt;Login&lt;/p&gt;&lt;/td&gt; &lt;td width="236"&gt; &lt;p&gt;LoginCompletedEventArgs&lt;/p&gt;&lt;/td&gt; &lt;td width="123"&gt; &lt;p&gt;授权页面方式登录带权限&lt;/p&gt;&lt;/td&gt; &lt;td width="138"&gt; &lt;p&gt;同上，可自定义权限&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width="121"&gt; &lt;p&gt;Login&lt;/p&gt;&lt;/td&gt; &lt;td width="236"&gt; &lt;p&gt;LoginCompletedEventArgs&lt;/p&gt;&lt;/td&gt; &lt;td width="123"&gt; &lt;p&gt;用户名密码方式登录&lt;/p&gt;&lt;/td&gt; &lt;td width="138"&gt; &lt;p&gt;使用输入框，用户名密码方式登录和授权&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width="121"&gt; &lt;p&gt;Logout&lt;/p&gt;&lt;/td&gt; &lt;td width="236"&gt; &lt;p&gt;LoginCompletedEventArgs&lt;/p&gt;&lt;/td&gt; &lt;td width="123"&gt; &lt;p&gt;登出&lt;/p&gt;&lt;/td&gt; &lt;td width="138"&gt; &lt;p&gt;退出登录&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width="121"&gt; &lt;p&gt;GetUserInfo&lt;/p&gt;&lt;/td&gt; &lt;td width="236"&gt; &lt;p&gt;GetUsersCompletedEventArgs&lt;/p&gt;&lt;/td&gt; &lt;td width="123"&gt; &lt;p&gt;获取用户信息&lt;/p&gt;&lt;/td&gt; &lt;td width="138"&gt; &lt;p&gt;获得含有指定字段名的用户信息&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width="121"&gt; &lt;p&gt;GetCurUserInfo&lt;/p&gt;&lt;/td&gt; &lt;td width="236"&gt; &lt;p&gt;GetUserUidCompletedEventArgs&lt;/p&gt;&lt;/td&gt; &lt;td width="123"&gt; &lt;p&gt;获取当前用户信息&lt;/p&gt;&lt;/td&gt; &lt;td width="138"&gt; &lt;p&gt;获得当前用户信息&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width="121"&gt; &lt;p&gt;GetFriendsID&lt;/p&gt;&lt;/td&gt; &lt;td width="236"&gt; &lt;p&gt;GetAppFriendsIDCompletedEventArgs&lt;/p&gt;&lt;/td&gt; &lt;td width="123"&gt; &lt;p&gt;获取好友ID&lt;/p&gt;&lt;/td&gt; &lt;td width="138"&gt; &lt;p&gt;返回好友ID列表&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width="121"&gt; &lt;p&gt;GetFriends&lt;/p&gt;&lt;/td&gt; &lt;td width="236"&gt; &lt;p&gt;GetFriendsCompletedEventArgs&lt;/p&gt;&lt;/td&gt; &lt;td width="123"&gt; &lt;p&gt;获取好友信息&lt;/p&gt;&lt;/td&gt; &lt;td width="138"&gt; &lt;p&gt;获得好友信息&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width="121"&gt; &lt;p&gt;GetAppFriends&lt;/p&gt;&lt;/td&gt; &lt;td width="236"&gt; &lt;p&gt;GetAppFriendsCompletedEventArgs&lt;/p&gt;&lt;/td&gt; &lt;td width="123"&gt; &lt;p&gt;获取应用好友列表&lt;/p&gt;&lt;/td&gt; &lt;td width="138"&gt; &lt;p&gt;获得应用中的好友列表&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width="121"&gt; &lt;p&gt;GetAlbums&lt;/p&gt;&lt;/td&gt; &lt;td width="236"&gt; &lt;p&gt;GetAlbumsCompletedEventArgs&lt;/p&gt;&lt;/td&gt; &lt;td width="123"&gt; &lt;p&gt;获取相册信息&lt;/p&gt;&lt;/td&gt; &lt;td width="138"&gt; &lt;p&gt;获得相册列表和信息&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width="121"&gt; &lt;p&gt;PublishPhoto&lt;/p&gt;&lt;/td&gt; &lt;td width="236"&gt; &lt;p&gt;UploadPhotoCompletedEventArgs&lt;/p&gt;&lt;/td&gt; &lt;td width="123"&gt; &lt;p&gt;上传照片&lt;/p&gt;&lt;/td&gt; &lt;td width="138"&gt; &lt;p&gt;调用数据接口上传照片&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width="121"&gt; &lt;p&gt;PublishPhotoSimple&lt;/p&gt;&lt;/td&gt; &lt;td width="236"&gt;无&lt;/td&gt; &lt;td width="123"&gt; &lt;p&gt;一键上传照片&lt;/p&gt;&lt;/td&gt; &lt;td width="138"&gt; &lt;p&gt;调用界面上传照片&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width="121"&gt; &lt;p&gt;CreateAlbum&lt;/p&gt;&lt;/td&gt; &lt;td width="236"&gt; &lt;p&gt;CreateAlbumCompletedEventArgs&lt;/p&gt;&lt;/td&gt; &lt;td width="123"&gt; &lt;p&gt;新建相册&lt;/p&gt;&lt;/td&gt; &lt;td width="138"&gt; &lt;p&gt;创建相册，返回新相册aid&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width="121"&gt; &lt;p&gt;FeedDialog&lt;/p&gt;&lt;/td&gt; &lt;td width="236"&gt; &lt;p&gt;DownloadStringCompletedEventArgs&lt;/p&gt;&lt;/td&gt; &lt;td width="123"&gt; &lt;p&gt;发布自定义新鲜事&lt;/p&gt;&lt;/td&gt; &lt;td width="138"&gt; &lt;p&gt;发布自定义新鲜事&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td width="121"&gt; &lt;p&gt;LikeDialog&lt;/p&gt;&lt;/td&gt; &lt;td width="236"&gt; &lt;p&gt;DownloadStringCompletedEventArgs&lt;/p&gt;&lt;/td&gt; &lt;td width="123"&gt; &lt;p&gt;发布人人喜欢&lt;/p&gt;&lt;/td&gt; &lt;td width="138"&gt; &lt;p&gt;发布喜欢&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt; &lt;p align="center"&gt;表1：SDK提供的相关API列表&lt;/p&gt; &lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt; &lt;p align="left"&gt;参考链接：&lt;/p&gt; &lt;p align="left"&gt;1. Renren WP7 公测Beta版：&lt;a title="http://page.renren.com/601015709/note/781864184?ref=minifeed&amp;amp;sfet=2012&amp;amp;fin=0&amp;amp;ff_id=601015709&amp;amp;feed=page_blog&amp;amp;tagid=781864184&amp;amp;statID=page_601015709_2&amp;amp;level=1" href="http://page.renren.com/601015709/note/781864184?ref=minifeed&amp;amp;sfet=2012&amp;amp;fin=0&amp;amp;ff_id=601015709&amp;amp;feed=page_blog&amp;amp;tagid=781864184&amp;amp;statID=page_601015709_2&amp;amp;level=1"&gt;http://page.renren.com/601015709/note/781864184?ref=minifeed&amp;amp;sfet=2012&amp;amp;fin=0&amp;amp;ff_id=601015709&amp;amp;feed=page_blog&amp;amp;tagid=781864184&amp;amp;statID=page_601015709_2&amp;amp;level=1&lt;/a&gt;&lt;/p&gt; &lt;p align="left"&gt;2. Renren 开放平台SDK目录：&lt;a title="http://wiki.dev.renren.com/wiki/SDK" href="http://wiki.dev.renren.com/wiki/SDK"&gt;http://wiki.dev.renren.com/wiki/SDK&lt;/a&gt;&lt;/p&gt; &lt;img src="http://www.cnblogs.com/dearsj001/aggbug/2301204.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dearsj001/archive/2011/12/25/Renren4WP7.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dearsj001/archive/2011/12/18/3rd_MVP_Road.html</id><title type="text">3年MVP路，一颗感恩的心</title><summary type="text">回顾自己三年的MVP路。</summary><published>2011-12-18T03:23:00Z</published><updated>2011-12-18T03:23:00Z</updated><author><name>施炯</name><uri>http://www.cnblogs.com/dearsj001/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dearsj001/archive/2011/12/18/3rd_MVP_Road.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dearsj001/archive/2011/12/18/3rd_MVP_Road.html"/><content type="html">&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12月初，参加了微软在北京举办的&amp;#8220;2011 GCR MVP Open Day&amp;#8221;，见到了老朋友，结识了新朋友。回顾3年的MVP路，不由感慨万千。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 初次接触微软技术，是07年读研究生的时候，给实验室的一个项目做一个模块，用到了Pocket PC。学校正好开设了微软技术俱乐部，会组织一些类似技术沙龙的活动，邀请研究院或者工程院的老师过来指导学习。在自己的学习过程中碰到的问题，都可以向他们咨询。同时，也会加入一些技术论坛，参与提问，参与讨论。渐渐地，从开始的提问，慢慢地学会解答别人的一些问题，也从中得到了一些成就感。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 08年初的时候，论坛的管理员推荐我申请MVP，但是自我感觉还没有达到要求。于是在接下来的半年中，我总结了项目中使用的技术、碰到的问题和解决问题的方法，在博客园建立了自己的博客，将这些文档共享给大家，和广大技术爱好者共同分享，共同探讨一些问题。同时，加入了学校的微软技术俱乐部，和同学们组队参加研究院为高校开设的项目，并积极参与研究院发起的比赛。每次比赛，我们都是抱着学习的态度，在队员们的不断努力下，渐渐地能够拿到名次，这也极大地鼓舞了同学们的自信心。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 08年底的时候，加入了微软中文技术论坛的大家庭，主要在自己擅长的领域板块回答问题，处理一些日常的帖子管理。09年4月，自己申请的MVP成功了。当时非常的开心，这也是对自己的一种肯定和鼓励。当然，这仅仅是MVP的开始，未来还有很多的事情等待着我。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 到今年，已经是MVP的第三年了。在这三年中，我持续地关注技术，在论坛上解答问题、在博客上分享技术文章的同时，我也得到了成长。因为我觉得，MVP的精神在于帮助和分享。自去年毕业工作以来，在业余投入的时间和精力也有限。但这是我的兴趣所在，我选择继续走我的这条路，感谢这三年来给我帮助的所有朋友。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;img src="http://www.cnblogs.com/dearsj001/aggbug/2300891.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dearsj001/archive/2011/12/18/3rd_MVP_Road.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dearsj001/archive/2011/11/30/UpgratetoOS7_1.html</id><title type="text">How-to: 利用Visual Studio升级Windows Phone 7工程</title><summary type="text">图文解说了WP7中将OS7.0的工程升级到OS7.1的过程。</summary><published>2011-11-30T08:36:00Z</published><updated>2011-11-30T08:36:00Z</updated><author><name>施炯</name><uri>http://www.cnblogs.com/dearsj001/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dearsj001/archive/2011/11/30/UpgratetoOS7_1.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dearsj001/archive/2011/11/30/UpgratetoOS7_1.html"/><content type="html">&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 自从&lt;a href="http://www.cnblogs.com/dearsj001/archive/2011/09/29/WindowsPhoneSDK71RTMRelease.html"&gt;Windows Phone SDK 7.1 RTM&lt;/a&gt;发布以后，我们在Visual Studio 2010 Express for Windows Phone中建立新工程时，可以选择OS的版本，选项包括7.0和7.1，其中默认是7.1，如下图1所示：&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201111/201111301635351408.png"&gt;&lt;img style="border: 0px currentColor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline;background-image: none;" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201111/201111301635351898.png" width="643" height="303" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;图1：新建工程时的OS选择界面&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 那么，对于之前的应用程序工程，如果要更新到新的OS版本，操作起来也非常的方便，下面我们就按顺序给出操作步骤。以《101.Windows.Phone.7.Apps,Volume.I》中第27章的源代码为例，用Visual Studio 2010 Express for Windows Phone打开&lt;u&gt;Groceries.sln&lt;/u&gt;文件，如下图2所示：&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201111/201111301635352422.png"&gt;&lt;img style="border: 0px currentColor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline;background-image: none;" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201111/201111301635362704.png" width="641" height="357" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;/p&gt; &lt;p align="center"&gt;图2：打开应用程序界面&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在项目的资源浏览器中，右键点击项目的工程，如下图3所示，弹出右键菜单，点击其中的&amp;#8220;Upgrate to Windows Phone 7.1&amp;#8221;&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201111/201111301635366816.png"&gt;&lt;img style="border: 0px currentColor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline;background-image: none;" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201111/201111301635366226.png" width="648" height="307" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;图3：项目右键菜单&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 之后，开发环境弹出一个提示信息框，提醒用户：工程中引用的任何其他工程不会被更新，如下图4所示。&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201111/20111130163537653.png"&gt;&lt;img style="border: 0px currentColor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline;background-image: none;" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201111/201111301635376717.png" width="454" height="325" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;图4：项目升级提醒&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在升级完成以后，进行编译，系统提示缺少组件：&lt;/p&gt; &lt;p align="center"&gt;&lt;font color="#000000"&gt;&lt;u&gt;&lt;strong&gt;The referenced component 'Microsoft.Phone.Controls.Toolkit' could not be found.&lt;/strong&gt;&lt;/u&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 我们知道，上面的警告是由于没有安装Silverlight for Windows Phone Tookit的缘故，目前，该工具包已经更新到最新的2011年11月版本（针对OS7.1），具体可以去这里下载：&lt;a href="http://silverlight.codeplex.com/SourceControl/list/changesets"&gt;地址&lt;/a&gt;。如下图5所示：&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201111/201111301635377240.png"&gt;&lt;img style="border: 0px currentColor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline;background-image: none;" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201111/201111301635378079.png" width="666" height="277" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;图5：Silverlight for Windows Phone Tookit&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 安装完毕以后，我们在项目的引用中删除旧的引用，手动添加新的引用，如下图6所示：&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201111/201111301635382506.png"&gt;&lt;img style="border: 0px currentColor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline;background-image: none;" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201111/201111301635382158.png" width="447" height="351" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;图6： 删除旧的引用&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 新的dll路径位于：%\Program Files\Microsoft SDKs\Windows Phone\v7.1\Toolkit\Oct11\Bin，添加引用的界面如下图7所示：&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201111/201111301635385505.png"&gt;&lt;img style="border: 0px currentColor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline;background-image: none;" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201111/201111301635387980.png" width="450" height="361" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;图7：添加新的引用&lt;/p&gt;      &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 至此，可以进行工程的编译和调试。&lt;/p&gt; &lt;img src="http://www.cnblogs.com/dearsj001/aggbug/2269317.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dearsj001/archive/2011/11/30/UpgratetoOS7_1.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/dearsj001/archive/2011/10/30/MotionSensorOnWP7.html</id><title type="text">Windows Phone 7  Motion Sensor 使用指南</title><summary type="text">本文讲述了Windows Phone 7上使用Motion Sensor的原因，以及如何为应用程序加入Motion API，最后给出了三星Focus i917上的测试结果。</summary><published>2011-10-30T05:43:00Z</published><updated>2011-10-30T05:43:00Z</updated><author><name>施炯</name><uri>http://www.cnblogs.com/dearsj001/</uri></author><link rel="alternate" href="http://www.cnblogs.com/dearsj001/archive/2011/10/30/MotionSensorOnWP7.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/dearsj001/archive/2011/10/30/MotionSensorOnWP7.html"/><content type="html">&lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;1. 为什么要引入Motion API？&lt;/strong&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;font size="3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font size="2"&gt;在上一篇《&lt;/font&gt;&lt;a href="http://www.cnblogs.com/dearsj001/archive/2011/10/29/CompassOnWP7.html"&gt;&lt;font size="2"&gt;Windows Phone 7 数字罗盘使用指南&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;》中，我们已经对WP7中的传感器有所了解，事实上，WP7正是通过这些传感器来获取手机当前的姿态和位置等信息。但是，对于开发者来说，他们所关心的并不是这些数据的值本身，而是这些数据所表示的含义。举个例子，之前做Windows Mobile设备定位应用的时候，一般会涉及到GPS数据的获取。在WM2003平台上，开发者需要自己写串口通信类，实现NEMA数据的解析。分析这个过程，最终我们提供给应用的有意义的数据其实就是经纬度和时间等信息，而并不是原始的NEMA协议数据。因此，微软在WM5.0平台中引入了GPSID（即GPS中间层驱动），对于应用程序来说，GPSID为其提供经纬度等信息；而与GPS硬件打交道的过程，就交给了GPSID。这样一来，应用程序开发者就从中解脱出来了。&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 那么，在我看来，Motion API所做的事情，其实质就和GPSID类似。在应用程序开发过程中，如果我们开发者获取原始的传感器数据，然后对其数据进行分析，从而去判断手机的姿态和移动方向，这样一个处理流程确实有点复杂，而且有时候也很难处理，如加速度传感器的返回值中，不仅仅包含了手机移动的加速度，还包括了重力加速度（事实上，在Windows Phone OS 7.0上，处理加速度传感器时，我们的确是需要经历上面的过程）。&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;因此，在Windows Phone OS 7.1（Mango）中，引入了Motion API，用它来对底层的传感器数据进行分析和处理，从而得到开发者需要的信息，如设备的姿态（yaw, pitch, and roll）、旋转加速度和线性加速度&lt;/strong&gt;。我们可以对原始的加速度传感器信息与Motion API中的加速度传感器信息进行对比，了解它们的区别。如下图1所示，左边是获取加速度传感器原始数据的页面，右边是获取Motion数据的页面。&lt;/font&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201110/201110301340567015.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Screen Capture (2)" border="0" alt="Screen Capture (2)" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201110/201110301341027783.jpg" width="237" height="393"&gt;&lt;/a&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201110/201110301341123413.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Screen Capture (5)" border="0" alt="Screen Capture (5)" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201110/201110301341131677.jpg" width="238" height="393"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;图1：加速度传感器的原始数据与Motion获取的数据对比&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp; &lt;font size="2"&gt; 从Y轴的数据来看，原始的加速度传感器数据包含了重力加速度与手机在外力作用下的加速度，而从Motion API获取到的加速度数据来看，它已经为我们排除了重力加速度的影响。因此，对于开发者而言，Motion API有助于简化应用程序的开发。&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;2. 使用Motion API的前提&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 首先，需要注意的是，一代的Windows Phone 7手机没有开放Motion API。因此，如果想要在Windows Phone OS 7.0上写基于Motion的应用程序，那是无法实现的。但是，自从这个月初微软提供了Mango升级以后，很多设备厂商都对其生产的WP7推送了Mango更新。在OS升级以后，有些设备就提供了对Motion API的支持。如我的三星Focus i917就支持，因此才有了以下的尝试。下文中的内容，参考了MSDN上的文章：&lt;a href="http://msdn.microsoft.com/zh-cn/library/hh202984.aspx"&gt;How to: Use the Combined Motion API for Windows Phone&lt;/a&gt;。&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;3. 如何在应用程序中使用Motion API？&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;   &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这里以silverlight应用程序为例，展示了在应用程序中使用Motion API的方法。&lt;/p&gt; &lt;p&gt;（1）添加对Microsoft.Devices.Sensors与Microsoft.Xna.Framework的引用，如下图2所示：&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201110/201110301341262483.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201110/201110301342357138.png" width="677" height="379"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;图2：添加Motion API相关的namespace&lt;/p&gt; &lt;p&gt;（2）在主页面的XAML中，加入6个Textblock，表示手机姿态的yall、pitch、roll和加速度传感器的三个返回值。为了使得表现形式更加得直观，引入三个三角形，用其旋转的角度来表征yall、pitch、roll的数值，同时引入三个相互垂直的轴线，用来表示加速度传感器的值，其代码如下：&lt;/p&gt; &lt;div class="csharpcode"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;       &amp;lt;!--TitlePanel contains the name of the application and page title--&amp;gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;        &amp;lt;StackPanel x:Name=&lt;span class="str"&gt;"TitlePanel"&lt;/span&gt; Grid.Row=&lt;span class="str"&gt;"0"&lt;/span&gt; Margin=&lt;span class="str"&gt;"12,17,0,28"&lt;/span&gt;&amp;gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;            &amp;lt;TextBlock x:Name=&lt;span class="str"&gt;"ApplicationTitle"&lt;/span&gt; Text=&lt;span class="str"&gt;"MY APPLICATION"&lt;/span&gt; Style=&lt;span class="str"&gt;"{StaticResource PhoneTextNormalStyle}"&lt;/span&gt;/&amp;gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;            &amp;lt;TextBlock x:Name=&lt;span class="str"&gt;"PageTitle"&lt;/span&gt; Text=&lt;span class="str"&gt;"Simple Motion"&lt;/span&gt; Margin=&lt;span class="str"&gt;"9,-7,0,0"&lt;/span&gt; Style=&lt;span class="str"&gt;"{StaticResource PhoneTextTitle1Style}"&lt;/span&gt;/&amp;gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;        &amp;lt;/StackPanel&amp;gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;nbsp;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;        &amp;lt;StackPanel&amp;gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;            &amp;lt;TextBlock Text=&lt;span class="str"&gt;"attitude"&lt;/span&gt; Margin=&lt;span class="str"&gt;"12,130,0,28"&lt;/span&gt; Style=&lt;span class="str"&gt;"{StaticResource PhoneTextLargeStyle}"&lt;/span&gt;/&amp;gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;            &amp;lt;Grid Margin=&lt;span class="str"&gt;"12 0 12 0"&lt;/span&gt;&amp;gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;                &amp;lt;TextBlock Height=&lt;span class="str"&gt;"30"&lt;/span&gt; HorizontalAlignment=&lt;span class="str"&gt;"Left"&lt;/span&gt;  Name=&lt;span class="str"&gt;"yawTextBlock"&lt;/span&gt; Text=&lt;span class="str"&gt;"YAW: 000"&lt;/span&gt; VerticalAlignment=&lt;span class="str"&gt;"Top"&lt;/span&gt; Foreground=&lt;span class="str"&gt;"Red"&lt;/span&gt; FontSize=&lt;span class="str"&gt;"25"&lt;/span&gt; FontWeight=&lt;span class="str"&gt;"Bold"&lt;/span&gt;/&amp;gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;                &amp;lt;TextBlock Height=&lt;span class="str"&gt;"30"&lt;/span&gt; HorizontalAlignment=&lt;span class="str"&gt;"Center"&lt;/span&gt;  Name=&lt;span class="str"&gt;"pitchTextBlock"&lt;/span&gt; Text=&lt;span class="str"&gt;"PITCH: 000"&lt;/span&gt; VerticalAlignment=&lt;span class="str"&gt;"Top"&lt;/span&gt; Foreground=&lt;span class="str"&gt;"Green"&lt;/span&gt; FontSize=&lt;span class="str"&gt;"25"&lt;/span&gt; FontWeight=&lt;span class="str"&gt;"Bold"&lt;/span&gt;/&amp;gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;                &amp;lt;TextBlock Height=&lt;span class="str"&gt;"30"&lt;/span&gt; HorizontalAlignment=&lt;span class="str"&gt;"Right"&lt;/span&gt;   Name=&lt;span class="str"&gt;"rollTextBlock"&lt;/span&gt; Text=&lt;span class="str"&gt;"ROLL: 000"&lt;/span&gt; VerticalAlignment=&lt;span class="str"&gt;"Top"&lt;/span&gt;  Foreground=&lt;span class="str"&gt;"Blue"&lt;/span&gt; FontSize=&lt;span class="str"&gt;"25"&lt;/span&gt; FontWeight=&lt;span class="str"&gt;"Bold"&lt;/span&gt;/&amp;gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;            &amp;lt;/Grid&amp;gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;            &amp;lt;Grid Height=&lt;span class="str"&gt;"200"&lt;/span&gt;&amp;gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;                &amp;lt;Polygon Name=&lt;span class="str"&gt;"yawtriangle"&lt;/span&gt; Points=&lt;span class="str"&gt;"45,135 80,50 115,135"&lt;/span&gt;  Stroke=&lt;span class="str"&gt;"Red"&lt;/span&gt; StrokeThickness=&lt;span class="str"&gt;"2"&lt;/span&gt; &amp;gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;                    &amp;lt;Polygon.Fill&amp;gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;                        &amp;lt;SolidColorBrush Color=&lt;span class="str"&gt;"Red"&lt;/span&gt; Opacity=&lt;span class="str"&gt;"0.3"&lt;/span&gt;/&amp;gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;                    &amp;lt;/Polygon.Fill&amp;gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;                    &amp;lt;Polygon.RenderTransform&amp;gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;                        &amp;lt;RotateTransform CenterX=&lt;span class="str"&gt;"80"&lt;/span&gt; CenterY=&lt;span class="str"&gt;"100"&lt;/span&gt;&amp;gt;&amp;lt;/RotateTransform&amp;gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;                    &amp;lt;/Polygon.RenderTransform&amp;gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;                &amp;lt;/Polygon&amp;gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;                &amp;lt;Polygon Name=&lt;span class="str"&gt;"pitchtriangle"&lt;/span&gt; Points=&lt;span class="str"&gt;"205,135 240,50 275,135"&lt;/span&gt; Stroke=&lt;span class="str"&gt;"Green"&lt;/span&gt; StrokeThickness=&lt;span class="str"&gt;"2"&lt;/span&gt; &amp;gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;                    &amp;lt;Polygon.Fill&amp;gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;                        &amp;lt;SolidColorBrush Color=&lt;span class="str"&gt;"Green"&lt;/span&gt; Opacity=&lt;span class="str"&gt;"0.3"&lt;/span&gt;/&amp;gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;                    &amp;lt;/Polygon.Fill&amp;gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;                    &amp;lt;Polygon.RenderTransform&amp;gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;                        &amp;lt;RotateTransform CenterX=&lt;span class="str"&gt;"240"&lt;/span&gt; CenterY=&lt;span class="str"&gt;"100"&lt;/span&gt;&amp;gt;&amp;lt;/RotateTransform&amp;gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;                    &amp;lt;/Polygon.RenderTransform&amp;gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;                &amp;lt;/Polygon&amp;gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;                &amp;lt;Polygon Name=&lt;span class="str"&gt;"rolltriangle"&lt;/span&gt; Points=&lt;span class="str"&gt;"365,135 400,50 435,135"&lt;/span&gt; Stroke=&lt;span class="str"&gt;"Blue"&lt;/span&gt; StrokeThickness=&lt;span class="str"&gt;"2"&lt;/span&gt; &amp;gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;                    &amp;lt;Polygon.Fill&amp;gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;                        &amp;lt;SolidColorBrush Color=&lt;span class="str"&gt;"Blue"&lt;/span&gt; Opacity=&lt;span class="str"&gt;"0.3"&lt;/span&gt;/&amp;gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;                    &amp;lt;/Polygon.Fill&amp;gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;                    &amp;lt;Polygon.RenderTransform&amp;gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;                        &amp;lt;RotateTransform CenterX=&lt;span class="str"&gt;"400"&lt;/span&gt; CenterY=&lt;span class="str"&gt;"100"&lt;/span&gt;&amp;gt;&amp;lt;/RotateTransform&amp;gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;                    &amp;lt;/Polygon.RenderTransform&amp;gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;                &amp;lt;/Polygon&amp;gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;            &amp;lt;/Grid&amp;gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;            &amp;lt;TextBlock Text=&lt;span class="str"&gt;"acceleration"&lt;/span&gt; Style=&lt;span class="str"&gt;"{StaticResource PhoneTextLargeStyle}"&lt;/span&gt;/&amp;gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;            &amp;lt;Grid Margin=&lt;span class="str"&gt;"12 0 12 0"&lt;/span&gt;&amp;gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;                &amp;lt;TextBlock Height=&lt;span class="str"&gt;"30"&lt;/span&gt; HorizontalAlignment=&lt;span class="str"&gt;"Left"&lt;/span&gt;  Name=&lt;span class="str"&gt;"xTextBlock"&lt;/span&gt; Text=&lt;span class="str"&gt;"X: 000"&lt;/span&gt; VerticalAlignment=&lt;span class="str"&gt;"Top"&lt;/span&gt; Foreground=&lt;span class="str"&gt;"Red"&lt;/span&gt; FontSize=&lt;span class="str"&gt;"25"&lt;/span&gt; FontWeight=&lt;span class="str"&gt;"Bold"&lt;/span&gt;/&amp;gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;                &amp;lt;TextBlock Height=&lt;span class="str"&gt;"30"&lt;/span&gt; HorizontalAlignment=&lt;span class="str"&gt;"Center"&lt;/span&gt;  Name=&lt;span class="str"&gt;"yTextBlock"&lt;/span&gt; Text=&lt;span class="str"&gt;"Y: 000"&lt;/span&gt; VerticalAlignment=&lt;span class="str"&gt;"Top"&lt;/span&gt; Foreground=&lt;span class="str"&gt;"Green"&lt;/span&gt; FontSize=&lt;span class="str"&gt;"25"&lt;/span&gt; FontWeight=&lt;span class="str"&gt;"Bold"&lt;/span&gt;/&amp;gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;                &amp;lt;TextBlock Height=&lt;span class="str"&gt;"30"&lt;/span&gt; HorizontalAlignment=&lt;span class="str"&gt;"Right"&lt;/span&gt;   Name=&lt;span class="str"&gt;"zTextBlock"&lt;/span&gt; Text=&lt;span class="str"&gt;"Z: 000"&lt;/span&gt; VerticalAlignment=&lt;span class="str"&gt;"Top"&lt;/span&gt;  Foreground=&lt;span class="str"&gt;"Blue"&lt;/span&gt; FontSize=&lt;span class="str"&gt;"25"&lt;/span&gt; FontWeight=&lt;span class="str"&gt;"Bold"&lt;/span&gt;/&amp;gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt;            &amp;lt;/Grid&amp;gt;&lt;span class="lnum"&gt;  46:  &lt;/span&gt;            &amp;lt;Grid Height=&lt;span class="str"&gt;"300"&lt;/span&gt;&amp;gt;&lt;span class="lnum"&gt;  47:  &lt;/span&gt;                &amp;lt;Line x:Name=&lt;span class="str"&gt;"xLine"&lt;/span&gt; X1=&lt;span class="str"&gt;"240"&lt;/span&gt; Y1=&lt;span class="str"&gt;"150"&lt;/span&gt; X2=&lt;span class="str"&gt;"340"&lt;/span&gt; Y2=&lt;span class="str"&gt;"150"&lt;/span&gt; Stroke=&lt;span class="str"&gt;"Red"&lt;/span&gt; StrokeThickness=&lt;span class="str"&gt;"4"&lt;/span&gt;&amp;gt;&amp;lt;/Line&amp;gt;&lt;span class="lnum"&gt;  48:  &lt;/span&gt;                &amp;lt;Line x:Name=&lt;span class="str"&gt;"yLine"&lt;/span&gt; X1=&lt;span class="str"&gt;"240"&lt;/span&gt; Y1=&lt;span class="str"&gt;"150"&lt;/span&gt; X2=&lt;span class="str"&gt;"240"&lt;/span&gt; Y2=&lt;span class="str"&gt;"50"&lt;/span&gt; Stroke=&lt;span class="str"&gt;"Green"&lt;/span&gt; StrokeThickness=&lt;span class="str"&gt;"4"&lt;/span&gt;&amp;gt;&amp;lt;/Line&amp;gt;&lt;span class="lnum"&gt;  49:  &lt;/span&gt;                &amp;lt;Line x:Name=&lt;span class="str"&gt;"zLine"&lt;/span&gt; X1=&lt;span class="str"&gt;"240"&lt;/span&gt; Y1=&lt;span class="str"&gt;"150"&lt;/span&gt; X2=&lt;span class="str"&gt;"190"&lt;/span&gt; Y2=&lt;span class="str"&gt;"200"&lt;/span&gt; Stroke=&lt;span class="str"&gt;"Blue"&lt;/span&gt; StrokeThickness=&lt;span class="str"&gt;"4"&lt;/span&gt;&amp;gt;&amp;lt;/Line&amp;gt;&lt;span class="lnum"&gt;  50:  &lt;/span&gt;            &amp;lt;/Grid&amp;gt;&lt;span class="lnum"&gt;  51:  &lt;/span&gt;        &amp;lt;/StackPanel&amp;gt;&lt;/div&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;（3）在主页面的MainPage.xaml.cs中，声明一个Motion类的对象。&lt;/p&gt;&lt;p&gt;（4）重写页面的&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.windows.controls.page.onnavigatedto.aspx"&gt;OnNavigatedTo(NavigationEventArgs)&lt;/a&gt;方法，检查设备是否支持Motion，初始化Motion对象，添加&lt;a href="http://msdn.microsoft.com/zh-cn/library/hh239103.aspx"&gt;CurrentValueChanged&lt;/a&gt;事件，代码如下：&lt;/p&gt;&lt;div class="csharpcode"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;span class="lnum"&gt;   3:  &lt;/span&gt;  &lt;span class="rem"&gt;// Check to see whether the Motion API is supported on the device.&lt;/span&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;  &lt;span class="kwrd"&gt;if&lt;/span&gt; (! Motion.IsSupported)&lt;span class="lnum"&gt;   5:  &lt;/span&gt;  {&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    MessageBox.Show(&lt;span class="str"&gt;"the Motion API is not supported on this device."&lt;/span&gt;);&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt;;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;  }&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&amp;nbsp;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;  &lt;span class="rem"&gt;// If the Motion object is null, initialize it and add a CurrentValueChanged&lt;/span&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;  &lt;span class="rem"&gt;// event handler.&lt;/span&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;  &lt;span class="kwrd"&gt;if&lt;/span&gt; (motion == &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;span class="lnum"&gt;  13:  &lt;/span&gt;  {&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    motion = &lt;span class="kwrd"&gt;new&lt;/span&gt; Motion();&lt;span class="lnum"&gt;  15:  &lt;/span&gt;    motion.TimeBetweenUpdates = TimeSpan.FromMilliseconds(20);&lt;span class="lnum"&gt;  16:  &lt;/span&gt;    motion.CurrentValueChanged += &lt;span class="kwrd"&gt;new&lt;/span&gt; EventHandler&amp;lt;SensorReadingEventArgs&amp;lt;MotionReading&amp;gt;&amp;gt;(motion_CurrentValueChanged);&lt;span class="lnum"&gt;  17:  &lt;/span&gt;  }&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&amp;nbsp;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;  &lt;span class="rem"&gt;// Try to start the Motion API.&lt;/span&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;  &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;  {&lt;span class="lnum"&gt;  22:  &lt;/span&gt;    motion.Start();&lt;span class="lnum"&gt;  23:  &lt;/span&gt;  }&lt;span class="lnum"&gt;  24:  &lt;/span&gt;  &lt;span class="kwrd"&gt;catch&lt;/span&gt; (Exception ex)&lt;span class="lnum"&gt;  25:  &lt;/span&gt;  {&lt;span class="lnum"&gt;  26:  &lt;/span&gt;    MessageBox.Show(&lt;span class="str"&gt;"unable to start the Motion API."&lt;/span&gt;);&lt;span class="lnum"&gt;  27:  &lt;/span&gt;  }&lt;span class="lnum"&gt;  28:  &lt;/span&gt;}&lt;/div&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;（5）通过周期性地调用CurrentValueChanged事件获得Motion数据，但是该事件是在后台进程中调用，无法对UI元素进行更改。因此，我们需要在UI线程中使用BeginInvoke来调用CurrentValueChanged。&lt;/p&gt;&lt;p&gt;（6）创建CurrentValueChanged方法，在其中设置6个Textblock和4个图的内容。使用XNA Framework中的MathHelper类实现弧度和角度的转换，代码如下：&lt;/p&gt;&lt;div class="csharpcode"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CurrentValueChanged(MotionReading e)&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;span class="lnum"&gt;   3:  &lt;/span&gt;  &lt;span class="rem"&gt;// Check to see if the Motion data is valid.&lt;/span&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;  &lt;span class="kwrd"&gt;if&lt;/span&gt; (motion.IsDataValid)&lt;span class="lnum"&gt;   5:  &lt;/span&gt;  {&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    &lt;span class="rem"&gt;// Show the numeric values for attitude.&lt;/span&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    yawTextBlock.Text = &lt;span class="str"&gt;"YAW: "&lt;/span&gt; + MathHelper.ToDegrees(e.Attitude.Yaw).ToString(&lt;span class="str"&gt;"0"&lt;/span&gt;) + &lt;span class="str"&gt;"&amp;#176;"&lt;/span&gt;;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    pitchTextBlock.Text = &lt;span class="str"&gt;"PITCH: "&lt;/span&gt; + MathHelper.ToDegrees(e.Attitude.Pitch).ToString(&lt;span class="str"&gt;"0"&lt;/span&gt;) + &lt;span class="str"&gt;"&amp;#176;"&lt;/span&gt;;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    rollTextBlock.Text = &lt;span class="str"&gt;"ROLL: "&lt;/span&gt; + MathHelper.ToDegrees(e.Attitude.Roll).ToString(&lt;span class="str"&gt;"0"&lt;/span&gt;) + &lt;span class="str"&gt;"&amp;#176;"&lt;/span&gt;;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&amp;nbsp;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    &lt;span class="rem"&gt;// Set the Angle of the triangle RenderTransforms to the attitude of the device.&lt;/span&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    ((RotateTransform)yawtriangle.RenderTransform).Angle = MathHelper.ToDegrees(e.Attitude.Yaw);&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    ((RotateTransform)pitchtriangle.RenderTransform).Angle = MathHelper.ToDegrees(e.Attitude.Pitch);&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    ((RotateTransform)rolltriangle.RenderTransform).Angle = MathHelper.ToDegrees(e.Attitude.Roll);&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&amp;nbsp;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;    &lt;span class="rem"&gt;// Show the numeric values for acceleration.&lt;/span&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;    xTextBlock.Text = &lt;span class="str"&gt;"X: "&lt;/span&gt; + e.DeviceAcceleration.X.ToString(&lt;span class="str"&gt;"0.00"&lt;/span&gt;);&lt;span class="lnum"&gt;  18:  &lt;/span&gt;    yTextBlock.Text = &lt;span class="str"&gt;"Y: "&lt;/span&gt; + e.DeviceAcceleration.Y.ToString(&lt;span class="str"&gt;"0.00"&lt;/span&gt;);&lt;span class="lnum"&gt;  19:  &lt;/span&gt;    zTextBlock.Text = &lt;span class="str"&gt;"Z: "&lt;/span&gt; + e.DeviceAcceleration.Z.ToString(&lt;span class="str"&gt;"0.00"&lt;/span&gt;);&lt;span class="lnum"&gt;  20:  &lt;/span&gt;&amp;nbsp;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;    &lt;span class="rem"&gt;// Show the acceleration values graphically.&lt;/span&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;    xLine.X2 = xLine.X1 + e.DeviceAcceleration.X * 100;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;    yLine.Y2 = yLine.Y1 - e.DeviceAcceleration.Y * 100;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;    zLine.X2 = zLine.X1 - e.DeviceAcceleration.Z * 50;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;    zLine.Y2 = zLine.Y1 + e.DeviceAcceleration.Z * 50;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;  }&lt;span class="lnum"&gt;  27:  &lt;/span&gt;}&lt;/div&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;4. 测试结果&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 对三星Focus i917（已升级到Mango，版本号为7720.68）进行Compass测试，获得的结果如下图3所示：&lt;/p&gt;&lt;p align="center"&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/dearsj001/201110/201110301342468108.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Screen Capture (6)" border="0" alt="Screen Capture (6)" src="http://images.cnblogs.com/cnblogs_com/dearsj001/201110/201110301342533827.jpg" width="256" height="424"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align="center"&gt;图3：Focus上的Motion API测试结果&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;font size="4"&gt;&lt;strong&gt;参考链接：&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;1. &lt;a href="http://msdn.microsoft.com/zh-cn/library/hh202984.aspx"&gt;How to: Use the Combined Motion API for Windows Phone&lt;/a&gt;&lt;/p&gt;&lt;p&gt;2. &lt;a href="http://msdn.microsoft.com/zh-cn/library/hh202968.aspx"&gt;Sensors Overview for Windows Phone&lt;/a&gt;&lt;/p&gt; &lt;img src="http://www.cnblogs.com/dearsj001/aggbug/2229248.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/dearsj001/archive/2011/10/30/MotionSensorOnWP7.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
