重庆建网站哪家售后服务比较好/网站seo的内容是什么
Windows Phone 7 的外设和重力感应
说明:这里只介绍Windows Phone的收音机和震动功能。(参照传智博客的视频而写)
一.Windows Phone 7 的外设
1.1 Windows phone 7的收音机功能的实现
实现收音机功能首先需要引用这个名字空间:
using Microsoft.Devices.Radio;
在实现收音机的功能之前,我们需要知道FMRadio是一个单例类,即它只有一个实例,因此它也为单例模式。我们不能再声明它的一个实例。
注:单例模式:单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。
单例模式的唯一实例是Instance.它有以下属性:
CurrentRegion | 设置收音机所在地区,目前只支持美国,日本和欧洲 |
Frequency | 设置收音机的频率 |
PowerMode | 设置收音机的电源模式,开(on)或关(off) |
SignalStrength | 表示收音机的信号强度 |
FMRadio 还有两个枚举:
RadioPowerMode | 表示电源模式,有两个枚举值 ON和OFF。 |
RadioRegion | 表示收音机所在地区,有三个枚举值: Europe, Japan和 UnitedStates. |
下面我们来看看如何通过代码实现收音机的功能。
首先我们设置一个FMRadio的变量它就等于Instance实例。
FMRadio myradio= FMRadio.Instance;
接着设置该变量(即FMRadio的实例)的电源模式为开(即打开收音机):
myradio.PowerMode = RadioPowerMode.On; //设置电源模式为开
之后还可以设置收音机的地区频率等:
myradio.CurrentRegion = RadioRegion.UnitedStates; //设置收音机所在地为US myradio.Frequency = 100; //设置收音机的频率为100
设置完成以后以上便实现了一个收音机的基本功能。
1.2 Windows phone 7的振动实现
实现振动效果需要引用该命名空间
using Microsoft.Phone.Devices;
实现振动只需要一句话:
VibrateController.Default.Start(TimeSpan.FromSeconds(2));
这行代码表示振动以秒计(FromSeconds),振动两秒。同理还有FromDays, FromHours, FromMinutes等。
二、 实现Windows Phone 7的重力感应
首先需要引用这个命名空间:
Using Microsoft.Devices.Sensors;
接着我们实例化一个对象:
Accelerometer acc = new Accelerometer();
然后注册检测加速度变化的事件ReadingChanged:
acc.ReadingChanged += new EventHandler<AccelerometerReadingEventArgs>(acc_ReadingChanged);//注册事件 acc.Start();//启动重力加速
当加速度发生改变时,便会出发ReadingChanged事件,但是由于调用事件的处理函数和当前运行的页面处于不同的线程(重力感应的事件处理函数在后台运行的),因此需要通过使用位于System.Windows.Deployment命名空间下的Dispatcher类,来调用位于当前页面线程的方法。具体代码如下:
void acc_ReadingChanged(object sender, AccelerometerReadingEventArgs e) { this.Dispatcher.BeginInvoke(new accdelegete(ACCchanged), e); }
声明一个委托:
public delegate void accdelegete (AccelerometerReadingEventArgse);
声明一个委托的代理方法:
void ACCchanged(AccelerometerReadingEventArgs e) { //此处添加当加速度改变时要执行的代码(也就是想实现的功能) XtextBox.Text = e.X.ToString();//将x轴方向的重力感应数据赋给TextBox YtextBox.Text = e.Y.ToString();//将y轴方向的重力感应数据赋给TextBox ZtextBox.Text = e.Z.ToString();//将z轴方向的重力感应数据赋给TextBox }
这样便是实现了重力加速感应的应用。
(版权所有,转载请标明出处)
转载于:https://blog.51cto.com/potential/1402575