11

经过一番谷歌搜索,我可以理解当设备远离/靠近用户时用于打开/关闭屏幕的“接近传感器”。我看了这个视频(从第 30 秒开始观看)并对这些很酷的东西感到惊讶。我想在我的应用程序中实现它。

但是我知道没有可用的公共 API 可以保护屏幕proximityMonitoringEnabled锁定YES。那么上面的应用程序是如何做到这一点的呢?

为了清楚起见,我正在复制一些代码。

启用接近传感器:

[[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:。但是该视图仅在几分之一秒内可见,并且屏幕熄灭了。

我可以防止屏幕自动关闭吗?

只是糊涂!!

4

1 回答 1

2

可以启用/禁用屏幕锁定。

[UIApplication sharedApplication].idleTimerDisabled = YES;
于 2015-07-07T14:20:15.993 回答