指纹识别、运动传感器、加速计、环境光感、距离传感器、磁力计、陀螺仪
一、指纹识别
应用:指纹解锁、指纹登录、指纹支付
苹果从iPhone5S开始,具有指纹识别技术,从iOS8.0之后苹果允许第三方 App 使用 Touch ID进行身份验证。
连续三次指纹识别错误后,会自动弹出密码框,通过Touch ID的密码进行身份验证,如果此时取消密码验证,再2次指纹识别失败后,也就是 3 + 2 = 5次指纹识别失败后,Touch ID功能被锁定,就只能通过密码来进行身份验证和解锁Touch ID 功能。
全部代码如下:
1 | #import <LocalAuthentication/LocalAuthentication.h> |
二、运动传感器/加速计/陀螺仪
应用:水平位置测试、摇一摇、计步器、游戏、特效动画
加速计和运动传感器主要监测设备在X、Y、Z轴上的加速度 ,根据加速度数值,就可以判断出在各个方向上的作用力度,陀螺仪主要用来监测设备的旋转方向和角度。
这几个传感器都是依赖于苹果官方CoreMotion框架,用法都差不多,先判断各个传感器是否可用开启,然后设置各个传感器的采集频率,接着就开始采集数据,并返回采集到的运动信息参数:各个方向的重力加速度、旋转方向角度等等。
- 示例效果:图片旋转的第一张图片用于检测设备是否处于水平位置,第二张图是设备无论在竖直/水平方向上怎么旋转,图片都保持于水平/竖直方向垂直。滚动小球不仅用了加速计,还用到了CoreMotion框架中行为管理CMMotionManager中的碰撞、重力行为,和动力学属性:摩擦、密度、弹力、阻力等
- 运动传感器的示例代码如下,其它的用法都差不多,只是相关的方法名称、属性名称和返回的参数类型和值不同,详情可以看demo,注释还算清晰;对于眼镜的绘制可以看下我之前的笔记:CALayer系列、CGContextRef、UIBezierPath、文本属性Attributes
1 | self.motionManager= [[CMMotionManager alloc] init]; |
三、环境光感处理器
应用:常见的比如说根据环境的亮度去调整屏幕的亮度,在黑暗情况下,手机会自动调暗屏幕亮度,以防刺眼;iPhone 系统相机拍照时光线暗时会自动打开闪光灯;共享单车在黑暗的情况下扫码时检测到特别暗就自动提示打开闪光灯。
- 利用摄像头获取环境光感参数,通过摄像头采集环境参数,然后在代理方法中输出,光感越小,环境越暗,然后根据需要做相应的操作。
- 示例中是环境变暗后就自动提示是否打开闪光灯,打开之后,环境变亮后会自动提示是否关闭闪光灯。
1 | // 1.获取硬件设备 |
四、距离传感器
距离传感器: 感应是否有其他物体靠近屏幕,iPhone手机中内置了距离传感器,位置在手机的听筒附近,当我们在打电话或听微信语音的时候靠近听筒,手机的屏幕会自动熄灭,这就靠距离传感器来控制
- 首先打开距离传感器,然后添加通知UIDeviceProximityStateDidChangeNotification监听有物品靠近还是离开,从而做出操作,记得最后要关闭距离传感器,有始有终哦。
- 示例中是默认用扬声器播放音乐,当有物体(比如耳朵)靠近听筒附近时就切换听筒播放音乐,物体离开后就继续用扬声器播放音乐。
1 | - (void)distanceSensor{ |
五、磁力计
请看我的上一篇博客:iOS仿系统指南针
传࿆送࿆之࿆门࿆ ——> 传感器集锦
温馨提示:请真机调试看效果。
欢迎扫描下方二维码关注——iOS开发进阶之路——微信公众号:iOS2679114653
本公众号是一个iOS开发者们的分享,交流,学习平台,会不定时的发送技术干货,源码,也欢迎大家积极踊跃投稿,(择优上头条) _分享自己开发攻城的过程,心得,相互学习,共同进步,成为攻城狮中的翘楚!
参考文献:
http://www.jianshu.com/p/8aa3525f8d48
http://www.jianshu.com/p/a561428df32f
http://www.jianshu.com/p/233be81b8ead
http://www.jianshu.com/p/f308d0aeced0
http://download.csdn.net/detail/tonny_guan/7099955