使用使用近距离传感器
UIDevice 中有两个近距离传感器的属性:proximityMonitoringEnabled 和 proximityState。这两个属性都是 iOS 3.0 及以上才支持的。
要确定近距离传感器是否可用,可以尝试启用它,即 proximityMonitoringEnabled = YES,如果设置的属性值仍然为NO,说明传感器不可用。
proximityState 属性
传感器已启动前提条件下,如果用户接近近距离传感器,此时属性值为YES,并且屏幕已关闭(非休眠)。
Notification
UIDeviceProximityStateDidChangeNotification,当近距离传感器状态改变时发生。
代码实现:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// 1.开启距离传感器
[UIDevice currentDevice].proximityMonitoringEnabled = YES;
// 2.发送通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(proximityState) name:UIDeviceProximityStateDidChangeNotification object:nil];
}
// 3.近距离传感器状态改变
- (void)proximityState
{
if ([UIDevice currentDevice].proximityState) {
NSLog(@"有物体靠近");
}else{
NSLog(@"有物体离开");
}
}
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
使用场景:
可以通过近距离传感器计算做俯卧撑次数