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 }
相关文章推荐
- iOS Block
- ios 十六进制与十进制转换
- iOS获取当前时间及前一天或后一天时间
- iOS 中KVC、KVO、NSNotification、delegate 总结及区别
- iOS 页面传值总结
- iOS hidesBackButton正确姿势 ios键盘联想屏蔽
- Ios userDefaultes本地存储
- 字典中添加不同类型的值(ios)
- iOS 蓝牙开发流程
- iOS开发多线程篇—创建线程
- iOS 实现缓存清理
- 自定义iOS下拉框
- iOS 将服务器下载下来的db文件和本地的db文件合并后保存
- iOS真机调试时更新证书错误:No matching provisioning profiles
- iOS 8小时的时间差
- 教你HTML5与iOS交互实现各种排序动画演示
- 装系统问题,BIOS显示不出硬盘解决方案
- iOS:时间格式化(标准时间转为时间戳、时间戳转为标准时间、时间戳转为日期)
- iOS:判断用户名是否以字母开头、手机号输入、邮箱是否正确的正则表达式
- IOS笔记