您的位置:首页 > 移动开发 > IOS开发

iOS开发之传感器

2016-04-28 00:00 357 查看

转:http://www.cnblogs.com/dongwenbo/p/4301530.html

传感器

什么是传感器

传感器是一种感应\检测装置, 目前已经广泛应用于智能手机上

传感器的作用

传感器的作用
用于感应\检测设备周边的信息
不同类型的传感器, 检测的信息也不一样

iPhone中的下面现象都是由传感器完成的
在地图应用中, 能判断出手机头面向的方向
一关灯, iPhone会自动降低亮度让屏幕显得不是那么刺眼
打电话时, 人脸贴近iPhone屏幕时, 屏幕会自动锁屏, 达到省电的目的
... ...

传感器的类型

iPhone5中内置的传感器有

运动传感器\加速度传感器\加速计(Motion/Accelerometer Sensor)

环境光传感器(Ambient Light Sensor)

距离传感器(Proximity Sensor)

磁力计传感器(Magnetometer Sensor)

内部温度传感器(Internal Temperature Sensor)

湿度传感器(Moisture Sensor)

陀螺仪(Gyroscope)

... ...

环境光传感器(Ambient Light Sensor)

是iOS、Mac设备中最为古老的传感器成员
它能够让你在使用 Mac、iPhone、iPad时,眼睛更为舒适
从一个明亮的室外走入相对黑暗的室内后,iOS设备会自动调低亮度,让屏幕显得不再那么光亮刺眼
当你使用iPhone拍照时,闪光灯会在一定条件下自动开启
几乎所有的Mac 都带有背光键盘,当周围光线弱到一定条件时,会自动开启键盘背光



距离传感器(Proximity Sensor)

用于检测是否有其他物体靠近设备屏幕
当你打电话或接电话时将电话屏幕贴近耳边,iPhone会自动关闭屏幕 ,好处是
节省电量
防止耳朵或面部不小心触摸屏幕而引发一些不想要的意外操作
题外话:利用距离传感器,能找出很多电视剧的穿帮镜头







磁力计传感器(Magnetometer Sensor)

可以感应地球磁场, 获得方向信息, 使位置服务数据更精准

可以用于电子罗盘和导航应用

iPad的Smart Cover盒盖睡眠操作就是基于磁力计传感器



内部温度传感器(Internal Temperature Sensor)

从 iPad一代开始,iOS设备都加入了一个内部温度传感器,用于检测内部组件温度,当温度超过系统设定的阈值时,会出现以下提示



内部温度传感器,对于提升iOS设备自身安全性与稳定性有很大的帮助

湿度传感器(Moisture Sensor)

湿度传感器跟其他基于微电子的传感器不同,是一个简单的物理传感器
简单来说,湿度传感器就是一张遇水变红的试纸
Apple的维修人员就是通过检测试纸是否变红,来判断设备是否进水
(设备进水不在保修范围之内)

陀螺仪(Gyroscope)

陀螺仪是随着iPhone4的上市首次出现在iOS设备上的传感器

陀螺仪可以用于检测设备的持握方式

陀螺仪的原理是检测设备在X、Y、Z轴上所旋转的角速度



陀螺仪在赛车类游戏中有重大作用:
模拟汽车驾驶时方向盘旋转的动作
使得这类游戏的操控体验更为真实

运动传感器\加速度传感器\加速计(Motion/Accelerometer Sensor)

最早出现在iOS设备上的传感器之一
加速计用于检测设备在X、Y、Z轴上的加速度 (哪个方向有力的作用)
加速计可以用于检测设备的摇晃,经典应用场景

摇一摇

计步器

传感器总结

传感器类型 作用
环境光传感器 感应周边环境光线的强弱(自动调节屏幕亮度)
距离传感器 感应是否有其他物体靠近设备屏幕(打电话自动锁屏)
磁力计传感器 感应周边的磁场(合盖锁屏)
内部温度传感器 感应设备内部的温度(提醒用户降温,防止损伤设备)
湿度传感器 感应设备是否进水(方便维修人员)
陀螺仪 感应设备的持握方式(赛车类游戏)
加速计 感应设备的运动(摇一摇、计步器)

距离传感器的使用



1 // 开启距离感应功能
2 [UIDevice currentDevice].proximityMonitoringEnabled = YES;  3 // 监听距离感应的通知
4 [[NSNotificationCenter defaultCenter] addObserver:self  5 selector:@selector(proximityChange:)  6 name:UIDeviceProximityStateDidChangeNotification  7 object:nil];  8
9 - (void)proximityChange:(NSNotificationCenter *)notification { 10     if ([UIDevice currentDevice].proximityState == YES) { 11     NSLog(@"某个物体靠近了设备屏幕"); // 屏幕会自动锁住
12     } else { 13     NSLog(@"某个物体远离了设备屏幕"); // 屏幕会自动解锁
14  } 15 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: