SimpleOrientationSensor是一个简单的方向传感器。能够识别手机如下表的6种方向信息:

SimpleOrientation枚举变量 方向
NotRotated 设备未旋转
Rotated90DegreesCounterclockwise 逆时针旋转 90 度
Rotated180DegreesCounterclockwise 逆时针旋转 180 度
Rotated270DegreesCounterclockwise 逆时针旋转 270 度
Faceup 将设备面朝上
Facedown 将设备面朝下

下面我们就来实现是否开打方向处理器并在各个不同状态下进行处理。

(一般的,我都是会将很多代码写在主函数里面,导致代码太臃肿,维护性差,现在我们将它封装起来吧。)

MainPage.xaml.cs:

        <ToggleSwitch x:Name="toggleSwitch" Header="方向传感器" IsOn="{Binding IsOpen, Mode=TwoWay}"/>

OrtSensors.cs类:

   /// <summary>
/// 自定义一个方向传感器类
/// </summary>
public class OrtSensors
{
public static SimpleOrientationSensor SimpleOrtSensor = SimpleOrientationSensor.GetDefault();//简单方向传感器 private bool isOpen; //是否打开 public bool IsOpen
{
set
{
if (value)
{
SimpleOrtSensor.OrientationChanged += SimpleOrtSensor_OrientationChanged;
}
else if (!value)
{
SimpleOrtSensor.OrientationChanged -= SimpleOrtSensor_OrientationChanged;
}
isOpen = value;
}
get
{
return isOpen;
}
} void SimpleOrtSensor_OrientationChanged(SimpleOrientationSensor sender,
SimpleOrientationSensorOrientationChangedEventArgs args)
{
switch (args.Orientation)
{
case SimpleOrientation.NotRotated:
Debug.WriteLine(args.Orientation.ToString()); //设备未旋转
break;
case SimpleOrientation.Rotated180DegreesCounterclockwise:
Debug.WriteLine(args.Orientation.ToString()); //逆时针180
break;
case SimpleOrientation.Rotated270DegreesCounterclockwise:
Debug.WriteLine(args.Orientation.ToString()); //逆时针270
break;
case SimpleOrientation.Rotated90DegreesCounterclockwise:
Debug.WriteLine(args.Orientation.ToString()); //逆时针90
break;
case SimpleOrientation.Facedown:
Debug.WriteLine(args.Orientation.ToString()); //面朝下
break;
case SimpleOrientation.Faceup:
Debug.WriteLine(args.Orientation.ToString()); //面朝上
break;
default:
break;
}
}
}

MainPage.cs:

//实例化并且设置绑定源
OrtSensors sensor = new OrtSensors();
public MainPage()
{
this.InitializeComponent(); this.NavigationCacheMode = NavigationCacheMode.Required;
toggleSwitch.DataContext = sensor;
}

简单的方向传感器SimpleOrientationSensor的更多相关文章

  1. UWP开发中的方向传感器

    在UWP开发中,我们能使用的到方向有三种: OrientationSensor下的四元数:Compass罗盘的HeadingMagneticNorth:以及SimpleOrientationSenso ...

  2. Android 百度地图 SDK v3.0.0 (二) 定位与结合方向传感器

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37730469 在上一篇博客中,我们成功把地图导入了我们的项目.本篇我们准备为地图 ...

  3. web端手机方向传感器闲谈

    因为工作需要,这段时间接触的手机传感器比较多.总体来说,市场上的传感器表现参差不齐.IPhone在传感器表现方面卓越,而安卓由于什么机型都有,则显得差强人意. 首先还是说说怎么在web端调用手机传感器 ...

  4. 修复 XE8 for Android 方向传感器 headingX,Y,Z 不会动的问题

    问题:XE8 for Android 方向传感器无法正常运作(在 XE7 是正常的) 测试:官方示例 Samples\Object Pascal\Mobile Snippets\Orientation ...

  5. Android实例-OrientationSensor方向传感器(XE8+小米2)

    相关资料: <修复 XE8 for Android 方向传感器 headingX,Y,Z 不会动的问题>:http://www.cnblogs.com/onechen/p/4497282. ...

  6. Android 方向传感器

    一般情况下,在Android系统中获取手机的方位信息在api中有TYPE_ORIENTATION常量,可以像得到加速度传感器那样得到方向传感器sm.getDefaultSensor(Sensor.TY ...

  7. Android利用方向传感器获得手机的相对角度实例说明

    http://www.jb51.net/article/37710.htm 1.android 的坐标系是如何定义x, y z 轴的 x轴的方向是沿着屏幕的水平方向从左向右,如果手机不是正方形的话,较 ...

  8. 关于android方向传感器的使用

    Android2.2以后 orientation sensors 就被deprecated了 官方建议用acceleration and magnetic sensor 来算 关于这个问题,CSDN上 ...

  9. Android百度地图(二)结合方向传感器我们自己定位哪里走

    Android百度地图(二)结合方向传感器我们自己定位哪里走 本文代码在http://blog.csdn.net/xyzz609/article/details/51943556的基础上进一步改动.有 ...

随机推荐

  1. java md5

    需求是,上传文件到HDFS,然后生成同名的MD5文件,基本示例如下: public static String getMD5(InputStream inputStream) { byte[] buf ...

  2. Android APP 读取 AndroidManifest.xml 中的版本信息详解

    APP都会涉及到版本的问题,Android APP的版本信息保存在AndroidManifest.xml文件的顶部.如下图: 有2个属性表示,“android:versionCode”和“androi ...

  3. Neutron 理解 (1): Neutron 所实现的虚拟化网络 [How Netruon Virtualizes Network]

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  4. 基于Windows10 x64+visual Studio2013+Python2.7.12环境下的Caffe配置学习

    本文在windows下使用visual studio2013配置关联python(python-2.7.12.amd64.msi)的caffe项目,如果有耐心的人,当然可以自己去下载caffe项目自己 ...

  5. POJ2167Irrelevant Elements[唯一分解定理 组合数 杨辉三角]

    Irrelevant Elements Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 2407   Accepted: 59 ...

  6. final finally finalize 区别

    public class Demo { public static void main(String[] args) { long start = System.currentTimeMillis() ...

  7. Intellij IDEA 快捷键整理(TonyCody)

    [常规] Ctrl+Shift + Enter,语句完成 "!",否定完成,输入表达式时按 "!"键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更 ...

  8. python高级之函数

    python高级之函数 本节内容 函数的介绍 函数的创建 函数参数及返回值 LEGB作用域 特殊函数 函数式编程 1.函数的介绍 为什么要有函数?因为在平时写代码时,如果没有函数的话,那么将会出现很多 ...

  9. Android 官方推荐 : DialogFragment 创建对话框

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37815413 1. 概述 DialogFragment在android 3.0时 ...

  10. hibernate单表junit测试

    首先,创建java project ,导入需要的jar包 添加hibernate.cfg.xml <?xml version='1.0' encoding='UTF-8'?> <!D ...