zoukankan      html  css  js  c++  java
  • wp7打开加速度传感器

    1. 引人传感器类库

        using Microsoft.Devices.Sensors

    2.通过Accelerometer.IsSupported判断当前设备是否支持加速度传感器,如果返回false则表示设备不支持加速度感应器。

      f (Accelerometer.IsSupported)
                {
                   // lblAccelerometerStatus.Text = "此设备支持加速度传感器";
                }
                else
                {
                   // lblAccelerometerStatus.Text = "此设备不支持加速度传感器";
                }

    3.打开加速度设备,设置监听获得,x,y,z轴对应的加速度值

       private Accelerometer _accelerometer;

        

    private void btnStart_Click(object sender, RoutedEventArgs e)

            {

                if (_accelerometer == null)  

               {

                    // 实例化 Accelerometer,注册相关事件  

                   _accelerometer = new Accelerometer();

                    _accelerometer.TimeBetweenUpdates = TimeSpan.FromMilliseconds(1);

                    _accelerometer.CurrentValueChanged += new EventHandler<SensorReadingEventArgs<AccelerometerReading>>(_accelerometer_CurrentValueChanged);

                    lblTimeBetweenUpdates.Text = "TimeBetweenUpdates 设置为 1 毫秒,实际为 " + _accelerometer.TimeBetweenUpdates.TotalMilliseconds.ToString() + " 毫秒";

                }

                try  

               {

                    // 打开加速度传感器

                    _accelerometer.Start();

                    lblAccelerometerStatus.Text = "加速度传感器已打开";  

               }             catch (Exception ex)

                {

                    lblAccelerometerStatus.Text = "加速度传感器已打开失败";

                    MessageBox.Show(ex.ToString());

                }

            }

     void _accelerometer_CurrentValueChanged(object sender, SensorReadingEventArgs<AccelerometerReading> e)

            {

                // 注:此方法是在后台线程运行的,所以需要更新 UI 的话注意要调用 UI 线程

                Dispatcher.BeginInvoke(() => UpdateUI(e.SensorReading));

            }

                    // 更新 UI

            private void UpdateUI(AccelerometerReading accelerometerReading)

            {

                Vector3 acceleration = accelerometerReading.Acceleration;

                // 输出 X Y Z 的值

                lblMsg.Text = "acceleration.X: " + acceleration.X.ToString("0.0");

                lblMsg.Text += Environment.NewLine;  

               lblMsg.Text += "acceleration.Y: " + acceleration.Y.ToString("0.0");  

               lblMsg.Text += Environment.NewLine;

                lblMsg.Text += "acceleration.Z: " + acceleration.Z.ToString("0.0");

            }

      

     4.关闭监听

      if (_accelerometer != null)
                {
                    // 关闭加速度传感器
                    _accelerometer.Stop();
                    lblAccelerometerStatus.Text = "加速度传感器已关闭";
                }

    wp开发 metro开发
  • 相关阅读:
    gulp自动化压缩合并、加版本号解决方案
    利用gulp 插件gulp.spritesmith 完成小图合成精灵图,并自动输出样式文件
    gulp插件(8)
    gulp插件 run-sequence(同步执行任务)
    gulp合并压缩
    Freemarker 基础概念
    querystring模块详解
    深入理解JavaScript的闭包特性如何给循环中的对象添加事件
    堆中的路径
    公式求值
  • 原文地址:https://www.cnblogs.com/daheihei/p/2847622.html
Copyright © 2011-2022 走看看