vigrx增大丸,新妹魔王的契约者第二季,秒杀聚划算
第11日。
昨天,我们讨论了windows phone的软键盘。今天,来谈谈基于硬件的加速感应器以及如何利用它提供的信息。
什么是加速感应器?
目前缺乏一个更好的定义,windows phone设备中的加速度感应器是用来度量3个坐标轴加速度的装置,这里说的加速度是相对于自由落体加速度的。除了一个时间戳之外,值都是用重力值(g)表示的(1g = 9.81 m/s2)。这意味着如果将电话正面朝上平放在一个绝对的平面上,z轴应该为-1.0,其他两个轴的数据为0。下面的图例演示了不同的值(感谢的来自于x">windowsteamblog的图片):
如何从wp7的加速感应器中获取数据?
幸好,这非常简单。复杂的是我们需要管理一些线程,但其实也很简单。下面是我们所要做的:
这是我这个例子中mainpage.xaml.cs的全部内容。你会看到我在mainpage.xaml文件中创建了3个textblock(xtext, ytext和ztext) ,所以我可以在屏幕中显示这些值。同样还可以看到我添加了一个microsoft.devices.sensors名称空间的引用来访问accelerometer类。
代码
using system;
using system.collections.generic;
using system.linq;
using system.net;
using system.windows;
using system.windows.controls;
using system.windows.documents;
using system.windows.input;
using system.windows.media;
using system.windows.media.animation;
using system.windows.shapes;
using microsoft.phone.controls;
using microsoft.devices.sensors;
namespace day11_accelerometer
{
public partial class mainpage : phoneapplicationpage
{
accelerometer acc = new accelerometer();
// constructor
public mainpage()
{
initializecomponent();
acc.readingchanged += new eventhandler<accelerometerreadingeventargs>(acc_readingchanged);
acc.start();
}
void acc_readingchanged(object sender, accelerometerreadingeventargs e)
{
deployment.current.dispatcher.begininvoke(() => threadsafeaccelerometerchanged(e));
}
void threadsafeaccelerometerchanged(accelerometerreadingeventargs e)
{
xtext.text = e.x.tostring("0.000");
ytext.text = e.y.tostring("0.000");
ztext.text = e.z.tostring("0.000");
}
}
}
模拟器不能模拟加速感应器的数据
是的。如果你下载了本文最后的代码,肯定会纳闷为什么z轴数据总是-1呢,这是因为模拟器认为它是在平面上的。它没有(有效的)方法来模拟加速感应器的数据。但是有一些聪明人找到了让这成为现实的方法。本篇文章剩下的部分让我很为难。我很想给每个模拟器解决方案写一个例子,但是还有这么多好的方法来模拟加速感应器数据,我认为让你们知道这些比仅仅写代码示例要好。这有很多建议供你去实验(每个站点都提供了代码示例):
reactive extensions是一个框架允许你为加速感应器(还有位置服务,我会在第13日中介绍)模拟数据而无需真实设备。实际上你无法控制这个动作,它只能给你产生随机数据。安装起来非常简单,而且相比于因为没有真实的手机而不能开发来说十分地高效。msdn的这个站点中有一个非常好的演练:。
这个可能是最酷的选择了。它利用摄像头和增强现实,允许你移动手机的打印图就像在真实世界中移动它一样。它是如此的酷以至于使我神魂颠倒,有两点原因:
来看看这些代码示例,来这里下载附加的库:
这个库不仅仅能用于windows phone模拟器,不过它确实可以为我们的目的非常好的工作。故事是这样的:如果你有一个任天堂的wii,你可以用控制器(一个wii遥控器)来生成你的加速感应器数据。brian peek是将这些内容集成在这个小托管代码库中的开发人员,如果你想实现的话可以到他的站点获取相关信息!
是的,就是“windows mobile”。这是在某些类型的windows mobile 6.x 设备上与加速感应器交互的方式。这篇文章描述了一种利用这种技术在windows phone上开发的方法。他们好像没有提供代码示例,但看起来非常简单:
下载代码示例
记住上述所有的解决方案都是暂时的。直到拿到设备之前这些都是在“伪造”加速感应器的数据。没有什么能替代在真实设备上运行你的代码。如果你没有机会这么做,。我来看看能为你在手机面前做什么,即使只是几小时。
原文地址:http://www.jeffblankenburg.com/post/31-days-of-windows-phone-7c-day-11-accelerometer.aspx
摘自 金山崟霸
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Windows Phone 7编程实践—推送通知(剖析推送通知实现架构)
Esri for Window Phone 7(一) 加载BingMap
浅谈ListBox在Windows Phone 7 中的使用
网友评论