博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发之传感器
阅读量:4686 次
发布时间:2019-06-09

本文共 2146 字,大约阅读时间需要 7 分钟。

传感器

什么是传感器

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

传感器的作用

用于感应\检测设备周边的信息

不同类型的传感器, 检测的信息也不一样

 

iPhone中的下面现象都是由传感器完成的

在地图应用中, 能判断出手机头面向的方向

一关灯, iPhone会自动降低亮度让屏幕显得不是那么刺眼

打电话时, 人脸贴近iPhone屏幕时, 屏幕会自动锁屏, 达到省电的目的

... ... 

传感器的类型

iPhone5中内置的传感器有

  • 运动传感器\加速度传感器\加速计Motion/Accelerometer Sensor
  • 环境光传感器(Ambient Light Sensor
  • 距离传感器(Proximity Sensor
  • 磁力计传感器(Magnetometer Sensor
  • 内部温度传感器(Internal Temperature Sensor
  • 湿度传感器(Moisture Sensor
  • 陀螺仪(Gyroscope
  • ... ...

环境光传感器(Ambient Light Sensor

iOSMac设备中最为古老的传感器成员

 它能够让你在使用 MaciPhoneiPad时,眼睛更为舒适 

从一个明亮的室外走入相对黑暗的室内后,iOS设备会自动调低亮度,让屏幕显得不再那么光亮刺眼 

当你使用iPhone拍照时,闪光灯会在一定条件下自动开启

几乎所有的Mac 都带有背光键盘,当周围光线弱到一定条件时,会自动开启键盘背光 

 

距离传感器(Proximity Sensor

用于检测是否有其他物体靠近设备屏幕

当你打电话或接电话时将电话屏幕贴近耳边,iPhone会自动关闭屏幕 ,好处是

节省电量 

防止耳朵或面部不小心触摸屏幕而引发一些不想要的意外操作 

题外话:利用距离传感器,能找出很多电视剧的穿帮镜头

    

磁力计传感器(Magnetometer Sensor

  • 可以感应地球磁场, 获得方向信息, 使位置服务数据更精准
  • 可以用于电子罗盘和导航应用
  • iPadSmart Cover盒盖睡眠操作就是基于磁力计传感器

内部温度传感器(Internal Temperature Sensor

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

 

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

湿度传感器(Moisture Sensor

湿度传感器跟其他基于微电子的传感器不同,是一个简单的物理传感器

简单来说,湿度传感器就是一张遇水变红的试纸

Apple的维修人员就是通过检测试纸是否变红,来判断设备是否进水

(设备进水不在保修范围之内)

陀螺仪(Gyroscope

  • 陀螺仪是随着iPhone4的上市首次出现在iOS设备上的传感器
  • 陀螺仪可以用于检测设备的持握方式
  • 陀螺仪的原理是检测设备在XYZ轴上所旋转的角速度

陀螺仪在赛车类游戏中有重大作用:

模拟汽车驾驶时方向盘旋转的动作 

使得这类游戏的操控体验更为真实 

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

最早出现在iOS设备上的传感器之一

加速计用于检测设备在XYZ轴上的加速度 (哪个方向有力的作用)

加速计可以用于检测设备的摇晃,经典应用场景

  • 摇一摇
  • 计步器

传感器总结

传感器类型

作用

环境光传感器

感应周边环境光线的强弱(自动调节屏幕亮度)

距离传感器

感应是否有其他物体靠近设备屏幕(打电话自动锁屏)

磁力计传感器

感应周边的磁场(合盖锁屏)

内部温度传感器

感应设备内部的温度(提醒用户降温,防止损伤设备)

湿度传感器

感应设备是否进水(方便维修人员)

陀螺仪

感应设备的持握方式(赛车类游戏)

加速计

感应设备的运动(摇一摇、计步器)

距离传感器的使用

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 }

 

转载于:https://www.cnblogs.com/dongwenbo/p/4301530.html

你可能感兴趣的文章
[转]单例模式中为什么用枚举更好
查看>>
selenium 获取断言信息
查看>>
c# 模拟get请求例子,演示Session会话状态。
查看>>
[.net 面向对象程序设计深入](0) 开篇
查看>>
C 多线程学习
查看>>
#Sam有话说#一握在手,话说十年
查看>>
匹配两个空格之间的字符。。。
查看>>
CSS 文字溢出 变成省略号 ...
查看>>
Spring事务
查看>>
java编程基础(三)流程控制语句
查看>>
让数据库跑的更快的7个MySQL优化建议
查看>>
jquery 取id模糊查询
查看>>
解决在vue中,自用mask模态框出来后,下层的元素依旧可以滑动的问题
查看>>
修改node节点名称
查看>>
Java 文件下载
查看>>
图论——读书笔记 (深度优先搜索)
查看>>
PAT(B) 1014 福尔摩斯的约会(Java)
查看>>
PAT甲级题解-1123. Is It a Complete AVL Tree (30)-AVL树+满二叉树
查看>>
项目开发总结报告(GB8567——88)
查看>>
BZOJ1930: [Shoi2003]pacman 吃豆豆
查看>>