传感器是一种感应\检测装置, 目前已经广泛应用于智能手机上
传感器的作用
用于感应\检测设备周边的信息
不同类型的传感器, 检测的信息也不一样
iPhone中的下面现象都是由传感器完成的
在地图应用中, 能判断出手机头面向的方向
一关灯, iPhone会自动降低亮度让屏幕显得不是那么刺眼
打电话时, 人脸贴近iPhone屏幕时, 屏幕会自动锁屏, 达到省电的目的
... ...
iPhone内置的传感器有
运动传感器\加速度传感器\加速计(Motion/Accelerometer Sensor)
环境光传感器(Ambient Light Sensor)
距离传感器(Proximity Sensor)
磁力计传感器(Magnetometer Sensor)
内部温度传感器(Internal Temperature Sensor)
湿度传感器(Moisture Sensor)
陀螺仪(Gyroscope)
... ...
传感器类型 | 作用 |
环境光传感器 | 感应周边环境光线的强弱(自动调节屏幕亮度) |
距离传感器 | 感应是否有其他物体靠近设备屏幕(打电话自动锁屏) |
磁力计传感器 | 感应周边的磁场(合盖锁屏) |
内部温度传感器 | 感应设备内部的温度(提醒用户降温,防止损伤设备) |
湿度传感器 | 感应设备是否进水(方便维修人员) |
陀螺仪 | 感应设备的持握方式(赛车类游戏) |
加速计 | 感应设备的运动(摇一摇、计步器) |
//开启距离感应功能
[UIDevicecurrentDevice].proximityMonitoringEnabled= YES;
//监听距离感应的通知
[[NSNotificationCenterdefaultCenter]addObserver:self
selector:@selector(proximityChange:)
name:UIDeviceProximityStateDidChangeNotification
object:nil];
-(void)proximityChange:(NSNotificationCenter*)notification {
if([UIDevicecurrentDevice].proximityState== YES){
NSLog(@"某个物体靠近了设备屏幕");// 屏幕会自动锁住
}else{
NSLog(@"某个物体远离了设备屏幕");// 屏幕会自动解锁
}
}
代码实现://
// ViewController.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// [UIApplication sharedApplication].proximitySensingEnabled = YES;
[UIDevice currentDevice].proximityMonitoringEnabled = YES;
// 监听设备靠近还是离开
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(proximityStateDidChange) name:UIDeviceProximityStateDidChangeNotification object:nil];
}
- (void)proximityStateDidChange
{
if ([UIDevice currentDevice].proximityState) {
NSLog(@"有设备靠近");
} else {
NSLog(@"有设备离开");
}
}
@end