windows phone傳感器

  Windows phone中的傳感器主要包括加速計傳感器、羅盤傳感器、陀螺儀傳感器等ide

加速計傳感器spa

  Accelerometer類是加速傳感器的接口,Accelerometer類位於Windows.Devices.Sensors命名空間下。 要使用系統加速計的功能,須要建立一個Accelerometer類的對象,而後用這個對象來捕獲手機當前的加速狀態。 Accelerometer類提供了ReadingChanged事件用於檢測加速計的狀態,並返回X、Y、Z軸信息。code

  使用Accelerometer類以前要引用Microsoft.Devices.Sensors命名空間。orm

  主要代碼以下:對象

 1 using Microsoft.Devices.Sensors;
 2 
 3 namespace accelerometer
 4 {
 5     public partial class MainPage : PhoneApplicationPage
 6     {
 7         Accelerometer acc = new Accelerometer();
 8        
 9         public MainPage()
10         {
11             InitializeComponent();
12             acc.ReadingChanged += acc_ReadingChanged;
13             acc.Start();
14         }
15 
16         void acc_ReadingChanged(object sender, AccelerometerReadingEventArgs e)
17         {
18             Deployment.Current.Dispatcher.BeginInvoke(() => ThreadStaticAccelerometerChanged(e));
19         }
20         void ThreadStaticAccelerometerChanged(AccelerometerReadingEventArgs e)
21         {
22             Xtext.Text = e.X.ToString();
23             Ytext.Text = e.Y.ToString();
24             Ztext.Text = e.Z.ToString();
25         }
26     }
27 }
View Code

羅盤傳感器 blog

  用羅盤傳感器來肯定手機相對於地球北極磁場旋轉的角度。 Compass類爲Windows phone應用程序提供對設備羅盤傳感器的訪問。 首先調用羅盤類Compass的GetDefault()獲取到羅盤對象,而後經過屬性ReportInterval設置當前報告羅盤讀書時間間隔。經過GetCurrentReading方法獲取當前的屬性值以及經過ReadingChanged事件獲取方向的變化。接口

使用Compass類以前要引用Microsoft.Devices.Sensors命名空間。事件

  主要代碼以下:ip

 1 public myCompass()
 2         {
 3             InitializeComponent();
 4             if (Compass.IsSupported)
 5             {
 6                 compass = new Compass();
 7                 compass.CurrentValueChanged += new EventHandler<SensorReadingEventArgs<CompassReading>>(compass_CurrentValueChanged);
 8                 compass.TimeBetweenUpdates = TimeSpan.FromMilliseconds(400);
 9                 compass.Start();
10             }
11             else
12                 MessageBox.Show("設備不支持電子羅盤");
13         }
14 
15         void compass_CurrentValueChanged(object sender, SensorReadingEventArgs<CompassReading> e)
16         {
17             if (compass.IsDataValid)
18             {
19 
20                 Deployment.Current.Dispatcher.BeginInvoke(() =>
21                 {
22 
23                     HeadingAccuracy = e.SensorReading.HeadingAccuracy;
24 
25                     if (!Calibrating)
26                     {
27                         TrueHeading = e.SensorReading.TrueHeading;
28                         if ((180 <= TrueHeading) && (TrueHeading <= 360))
29                             ReciprocalHeading = TrueHeading - 180;
30                         else
31                             ReciprocalHeading = TrueHeading + 180;
32                         CompassFace1.RenderTransformOrigin = new Point(0.5, 0.5);
33                         transform.Angle = 360 - TrueHeading;
34                         CompassFace1.RenderTransform = transform;
35                        
36                     }
37                     
38                 });
39             }
40         }
41     }
42 }
View Code

陀螺儀傳感器ci

  陀螺儀傳感器測量手機沿着其三個主軸的旋轉速度 Gyrometer類表示陀螺儀傳感器,爲Windows phone應用程序提供對設備陀螺儀傳感器的訪問,返回有關X、Y、Z軸的角速度值。

相關文章
相關標籤/搜索