经过一番搜索后,我了解到“接近传感器”是用于在设备靠近/远离用户时开启/关闭屏幕的。我观看了这个视频(从第30秒开始观看),对这个酷炫的东西感到惊讶。我想在我的应用程序中实现它。
但是我得知当 proximityMonitoringEnabled
为 YES
时,没有公共 API 可以保护屏幕锁定。那么上述应用程序是如何做到的呢?
为了更清楚地理解,我复制了一些代码。
启用接近传感器:
[[UIDevice currentDevice] setProximityMonitoringEnabled:YES];
设置一个传感器变化的观察者:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sensorStateMonitor:) name:@"UIDeviceProximityStateDidChangeNotification" object:nil];
最后,您可以通过此方法找到接近传感器的状态:
- (void)sensorStateMonitor:(NSNotificationCenter *)notification
{
if ([[UIDevice currentDevice] proximityState] == YES)
{
NSLog(@"Device is close to user.");
}
else
{
NSLog(@"Device is not closer to user.");
}
}
问题:
当“设备靠近用户”状态被调用时,我想显示一些视图。如果“设备没有靠近用户”状态被调用,则想要移除该视图。
所以我在sensorStateMonitor:
方法中添加了一个视图并将其移除。但是这个视图只可见了几秒钟,屏幕就关闭了。
我能防止屏幕自动关闭吗?
有点困惑!!