如何在iOS开发中以编程方式使用接近传感器?

时间:2015-07-07 14:07:01

标签: ios screen monitoring proximitysensor

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

但我发现,当proximityMonitoringEnabledYES时,没有可用的公共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:方法中删除了。但是视图只在几秒钟内可见,并且屏幕熄灭。

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

困惑!!

1 个答案:

答案 0 :(得分:1)

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

[UIApplication sharedApplication].idleTimerDisabled = YES;