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

经过一些谷歌搜索,我可以理解“接近传感器”用于当设备离开/靠近用户时开/关屏幕.我观看了 this video(从第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:方法添加一个视图并删除了.但是视图仅在几分之一秒内可见,并且屏幕熄灭.

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

只是困惑!!

解决方法

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

[UIApplication sharedApplication] .idleTimerdisabled = YES;

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...