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. }

罗盘传感器

  用罗盘传感器来确定手机相对于地球北极磁场旋转的角度。 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();
  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 (( <= TrueHeading) && (TrueHeading <= ))
  29. ReciprocalHeading = TrueHeading - ;
  30. else
  31. ReciprocalHeading = TrueHeading + ;
  32. CompassFace1.RenderTransformOrigin = new Point(0.5, 0.5);
  33. transform.Angle = - TrueHeading;
  34. CompassFace1.RenderTransform = transform;
  35.  
  36. }
  37.  
  38. });
  39. }
  40. }
  41. }
  42. }

陀螺仪传感器

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

windows phone传感器的更多相关文章

  1. WinPhone学习笔记(一)——页面导航与页面相关

    最近学一下Windows Phone(接下来简称“WinPhone”)的开发,在很久很久前稍探究一下WinPhone中对一些传感器的开发,那么现在就从头来学学WinPhone的开发.先从WinPhon ...

  2. Snort企业部署实战

    Snort企业部署实战 1 背景       我们知道企业网络目前威胁来自两个位置:一个是内部,一个是外部.来自外部的威胁都能被防火墙所阻止,但内部攻击都不好防范.因为公司内部人员对系统了解很深且有合 ...

  3. 与众不同 windows phone (18) - Device(设备)之加速度传感器, 数字罗盘传感器

    原文:与众不同 windows phone (18) - Device(设备)之加速度传感器, 数字罗盘传感器 [索引页][源码下载] 与众不同 windows phone (18) - Device ...

  4. 与众不同 windows phone (19) - Device(设备)之陀螺仪传感器, Motion API

    原文:与众不同 windows phone (19) - Device(设备)之陀螺仪传感器, Motion API [索引页][源码下载] 与众不同 windows phone (19) - Dev ...

  5. 张高兴的 Windows 10 IoT 开发笔记:BH1750FVI 光照度传感器

    BH1750FVI 是一款 IIC 接口的数字型光强度传感器集成电路.下面介绍一下其在 Windows 10 IoT Core 环境下的用法. 项目运行在 Raspberry Pi 2/3 上,使用 ...

  6. 使用 Windows 10 中的加速度计(Accelerometer,重力传感器)

    在做 UWP 应用开发的时候还有什么理由可以用到加速度计呢?场景很多啦,比如做游戏,做类似 Surface Hub 那种一边旋转,一边所有内容跟着一起转的效果. Windows 10 UWP 中的加速 ...

  7. 张高兴的 Windows 10 IoT 开发笔记:DHT11 温湿度传感器

    GitHub : https://github.com/ZhangGaoxing/windows-iot-demo/tree/master/DHT11Demo

  8. 张高兴的 Windows 10 IoT 开发笔记:ADXL345 加速度传感器

    GitHub : https://github.com/ZhangGaoxing/windows-iot-demo/tree/master/ADXL345Demo

  9. 《连载 | 物联网框架ServerSuperIO教程》-4.如开发一套设备驱动,同时支持串口和网络通讯。附:将来支持Windows 10 IOT

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

随机推荐

  1. perf-perf stat用户层代码分析

    perf_event 源码分析 前言 简单来说,perf是一种性能监测工具,它首先对通用处理器提供的performance counter进行编程,设定计数器阈值和事件,然后性能计数器就会在设定事件发 ...

  2. THUSC2019 退役记

    Day -inf 这一个半月潜心搞文化课,把文化课的坑填上了不少,我文化课的底子真是薄啊 一年前没想过我还挺有希望进队的,最后还差点冲上 一年后说不定会发现我搞文化课也能搞得不错呢? 一切都是未知 t ...

  3. 如何在Ubuntu16.04 中安装Linux, Nginx, MySQL, PHP (LEMP 栈)

    介绍 LEMP 栈是用来开发动态网页和web 应用程序的一系列软件集合,LEMP描述的是Linux操作系统,Nginx web 服务器,以及后端数据存储MySQL/MariaDB数据库和服务器端动态脚 ...

  4. Python基础-while奇数和

    利用while循环计算100*座位号 以内奇数的和. n = 1 s = 0 SeatID=1 while n <= 100*SeatID: s += n n += 2 print '奇数的和: ...

  5. node.js 中的package.json文件怎么创建?

    最近在用webstorm和nodejs做一些东西,老是各种混乱,今天上午创建一个新的项目,结果发现,npm init之后,并没有出现package.json,并没有太明确他的功能的小姑娘表示十分的惊慌 ...

  6. 【codeforces 510B】Fox And Two Dots

    [题目链接]:http://codeforces.com/contest/510/problem/B [题意] 让你在一个二维的方格里面找环; 两个点有相邻的边它们才是相连的; 有环YES,没环NO ...

  7. BNUOJ 1021 信息战(七)——情报传递

    信息战(七)——情报传递 Time Limit: 3000ms Memory Limit: 262144KB 64-bit integer IO format: %lld      Java clas ...

  8. BZOJ——T 4563: [Haoi2016]放棋子

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 387  Solved: 247[Submit][Status][Discuss] Descriptio ...

  9. [转]十五天精通WCF——第十四天 一起聊聊FaultException

     我们在玩web编程的时候,可能你会不经意的见到一些http500的错误,我想你应该不会陌生的,原因你应该也知道,服务器异常嘛, 这时候clr会把这个未处理的异常抛给iis并且包装成http500的错 ...

  10. 在shell脚本中使用函数的返回值

    #!/bin/bash - function mytest() { echo "arg1 = $1" if [ $1 = "1" ] ;then return ...