ios-传感器简单介绍
来源:互联网 发布:办公软件英文怎么说 编辑:程序博客网 时间:2024/05/16 17:58
在ios设备中都内置了一些传感器,什么是传感器?其实就是一种感应、检测的装置,就好比iphone上都有可以自动去调整手机的亮度,其实就是依赖于光线传感器的。
当然iphone中肯定不止这一个,比如说还有什么距离传感器啊,磁力计传感器,内部的温度传感器,加速度传感器等等。当然Mac电脑也是有传感器的,最简单的例子就是
背光键盘会在光线暗的时候打开。距离传感器的话就比如说是我们打电话的时候,人脸靠近的时候屏幕会变黑掉,当我们脸原理的时候又会自动亮起来。再比如说磁力计传感器,可以用于感应地球的磁场,获得方向的信息。
下面我们来写下怎么样去使用距离传感器去监听这个距离的远近,代码如下,首先是先去开启距离传感器的功能,然后再去注册通知,去监听
//1、开启距离传感器的功能 [UIDevice currentDevice].proximityMonitoringEnabled = YES; //2、注册通知,监听通知 [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(proximityStateDidChangeNotification) name:UIDevice ProximityStateDidChangeNotification object:nil];//监听方法-(void)proximityStateDidChangeNotification{ //3、获取通知的值,如果有东西靠近的就会去关闭屏幕远离之后会再次的开启 if([UIDevice currentDevice].proximityState) { NSLog(@"有人靠近"); } else { NSLog(@"有人离开"); }}
加速计对的原理其实就是检测设备在X、Y、Z轴上的加速度,也就是哪个方向有力的作用。因为力就会产生加速度。我们如果想要去检测的话,首先就得导入Core Motion这个框架,在Core Motion中获取数据有两种方式,一个push实时拿数据,拿的频率会比较高,看你自己设定的时间,另外一个是pull是需要的时候再去主动的去拿数据。
我们想要通过加速计在Core Motion中通过push方式拿数据的步骤就是
1、创建一个运动管理者的对象
2、判断加速计是否可用、
3、设置采集数据的时间间隔
4、开始采集数据
这里需要注意的是z轴手机反过来水平放置为1 正面朝上水平放置为-1 y轴竖着放置为-1 ,倒置竖着放为1 手机home键在左边横着放x值为1,在右边则为-1, 我们只要快速的去移动手机这个值就会变大。当然要看你方向朝着那边了。
//1、首先先创建CMMotionManager对象 self.motionMgr = [CMMotionManager new]; //2、判断加速计是否可用 if(![self.motionMgr isAccelerometerAvailable]) { return; } //3、设置采样间隔 self.motionMgr.accelerometerUpdateInterval = 1; //4、开始采样,这里我们是让在子线程上执行,因为需要调用很多次 [self.motionMgr startAccelerometerUpdatesToQueue:[NSOperationQueue new] withHandler:^(CMAccelerometerData * _Nullable accelerometerData, NSError * _Nullable error) { //5、获取加速计数据 CMAcceleration acceleration = accelerometerData.acceleration; NSLog(@"x: %f, y: %f, z: %f",acceleration.x,acceleration.y,acceleration.z); }];我们还可以通过Pull方式来获取,就是我们在需要去取数据的时候再去进行获取就可以了,其实前两步步骤都一样区别就在于后面
//1、首先先创建CMMotionManager对象 self.motionMgr = [CMMotionManager new]; //2、判断加速计是否可用 if(![self.motionMgr isAccelerometerAvailable]) { return; } //3、开始采样 [self.motionMgr startAccelerometerUpdates];-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ NSLog(@"%@",self.motionMgr.accelerometerData);}
陀螺仪用来检测转动的角速度,用法其实也差不多的下面就只举一个Push方式了
//1、首先先创建CMMotionManager对象 self.motionMgr = [CMMotionManager new]; //2、判断陀螺仪是否可用 if(![self.motionMgr isGyroAvailable]) { return; } //3、设置采样间隔 self.motionMgr.gyroUpdateInterval = 1; //4、开始采样,这里我们是让在子线程上执行,因为需要调用很多次 [self.motionMgr startGyroUpdatesToQueue:[NSOperationQueue new] withHandler:^(CMGyroData * _Nullable gyroData, NSError * _Nullable error) { //5、获取陀螺仪数据 CMRotationRate rotationRate = gyroData.rotationRate; NSLog(@"x: %f, y: %f, z: %f",rotationRate.x,rotationRate.y,rotationRate.z); }];磁力计可以检测磁场的变化,可以用于导航
//1、首先先创建CMMotionManager对象 self.motionMgr = [CMMotionManager new]; //2、判断磁力计是否可用 if(![self.motionMgr isMagnetometerAvailable]) { return; } //3、设置采样间隔 self.motionMgr.magnetometerUpdateInterval = 1; //4、开始采样,这里我们是让在子线程上执行,因为需要调用很多次 [self.motionMgr startMagnetometerUpdatesToQueue:[NSOperationQueue new] withHandler:^(CMMagnetometerData * _Nullable magnetometerData, NSError * _Nullable error) { //5、获取磁力计数据 CMMagneticField magneticField = magnetometerData.magneticField; NSLog(@"x: %f, y: %f, z: %f",magneticField.x,magneticField.y,magneticField.z); }];
- IOS 传感器简单介绍
- ios-传感器简单介绍
- 传感器的简单介绍
- Android传感器简单介绍
- IOS 传感器 知识点 介绍
- iOS 摇一摇,陀螺仪,距离传感器,计步器简单介绍
- 27.iPhone加速度传感器简单介绍
- 30.iPhone的电源传感器简单介绍
- 31.iPhone的磁场传感器简单介绍
- 传感器介绍
- 传感器介绍
- ios传感器
- iOS 传感器
- IOS 传感器
- IOS 传感器
- 简单介绍一下用加速度传感器修正角速度传感器(陀螺仪)累计误差的原理
- Android 传感器 (详解一)—— 简单介绍传感器的使用步骤
- iOS runloop简单介绍
- ssm框架,当某个框架的jar包升级版本后报错创建某个bean出错
- MSP430ADC转化失败的原因
- HDFS文件追加append里的坑
- geany-themes, Geany的颜色方案集合
- 小谜题4
- ios-传感器简单介绍
- 51nod 1475 建设国家 优先队列
- 日期多选插件Kalendae.js 动态引用
- cmake
- SQL Server与Oracle有什么区别?
- [面试]常见TCP,UDP,HTTP协议
- 文件的复制
- vultr 搭建ss 备忘
- 6.8