zoukankan      html  css  js  c++  java
  • windows phone传感器

      Windows phone中的传感器主要包括加速计传感器、罗盘传感器、陀螺仪传感器等

    加速计传感器

      Accelerometer类是加速传感器的接口,Accelerometer类位于Windows.Devices.Sensors命名空间下。 要使用系统加速计的功能,需要创建一个Accelerometer类的对象,然后用这个对象来捕获手机当前的加速状态。 Accelerometer类提供了ReadingChanged事件用于检测加速计的状态,并返回X、Y、Z轴信息。

      使用Accelerometer类之前要引用Microsoft.Devices.Sensors命名空间。

      主要代码如下:

     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

    罗盘传感器

      用罗盘传感器来确定手机相对于地球北极磁场旋转的角度。 Compass类为Windows phone应用程序提供对设备罗盘传感器的访问。 首先调用罗盘类Compass的GetDefault()获取到罗盘对象,然后通过属性ReportInterval设置当前报告罗盘读书时间间隔。通过GetCurrentReading方法获取当前的属性值以及通过ReadingChanged事件获取方向的变化。

    使用Compass类之前要引用Microsoft.Devices.Sensors命名空间。

      主要代码如下:

     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

    陀螺仪传感器

      陀螺仪传感器测量手机沿着其三个主轴的旋转速度 Gyrometer类表示陀螺仪传感器,为Windows phone应用程序提供对设备陀螺仪传感器的访问,返回有关X、Y、Z轴的角速度值。

  • 相关阅读:
    experss路由工作原理
    mongoose学习参考
    express+nodejs 个人博客
    HTML5-CSS3学习20150410(一)
    js学习20150420(七)
    js学习20150401(六)
    js学习20150401(五)
    js学习20150401(四)
    【荐】使用eval()、new Function()将JSON字符串转换为JSON对象
    HTML5 Canvas核心技术—图形、动画与游戏开发.pdf7
  • 原文地址:https://www.cnblogs.com/spilledlight/p/4878889.html
Copyright © 2011-2022 走看看