关闭屏幕

时间:2009-07-27 18:44:08

标签: iphone cocoa-touch

我需要我的应用程序在没有iPhone进入睡眠的情况下运行。但我想关闭屏幕。当您通过电话讲话时,电话应用程序中会做类似的事情。

我阻止iPhone以下列方式进入睡眠状态: [[UIApplication sharedApplication] setIdleTimerDisabled:YES];

但是如何关闭屏幕呢?当用户触摸屏幕时,如何将其关闭?

感谢。

5 个答案:

答案 0 :(得分:5)

更新:此方法已被弃用。请参阅TimothéeBoucher的评论。


您可以通过接近传感器关闭屏幕,但没有其他公共方式让屏幕进入睡眠状态。

-[UIApplication setProximitySensingEnabled:(BOOL)]

答案 1 :(得分:2)

嗯,你可以完全关闭亮度。它没有锁定屏幕,设备仍然显示,但没有LCD背光使它几乎不可能看到。

- (void) changeSystemBrightness: (NSString *) switchValue {

if ([[UIScreen mainScreen] respondsToSelector:@selector(setBrightness:)]) {
    if (switchValue) {
        if ([switchValue isEqualToString:@"saveDefault"]) {
            //
            self.userBrightness = [UIScreen mainScreen].brightness;
            //NSLog(@"User Brightness: %1.1f", userBrightness);
        } else if ([switchValue isEqualToString:@"restoreDefault"]) {
            [UIScreen mainScreen].brightness = self.userBrightness;
            //NSLog(@"Restore Brightness: %1.1f", userBrightness);
        } else if ([switchValue isEqualToString:@"min"]) {
            //[UIScreen mainScreen].brightness = 0;
        } else if ([switchValue isEqualToString:@"max"]) {
            [UIScreen mainScreen].brightness = 1;
        } else if ([switchValue isEqualToString:@"mid"]) {
            [UIScreen mainScreen].brightness = 0.5;
        }
    } else {
        [UIScreen mainScreen].brightness = self.userBrightness;
        //NSLog(@"Restore Brightness: %1.1f", userBrightness);
    }
}

}

首先保存用户的系统亮度级别

[self changeSystemBrightness:@"saveDefault"];  

之后你可以关闭屏幕:

[self changeSystemBrightness:@"min"];  

恢复亮度:

[self changeSystemBrightness:@"restoreDefault"];  

iOS会在屏幕正常关闭(锁定/解锁)后恢复默认系统亮度,因此您必须检测并处理它。

答案 2 :(得分:0)

我无法确认这是一项公共功能,但我知道有一种接近传感器可以感知手机是否接近您的脸部。尝试挖掘并确定该传感器是否公开可用,然后哪个功能可能会关闭屏幕。

答案 3 :(得分:0)

没有官方(公共)编程方式来打开或关闭屏幕,甚至不改变显示屏的亮度。一些应用程序通过在视图顶部施加透明的黑色视图并改变其不透明度以使亮度发生变化的外观来“伪造”亮度变化(背光将保持开启,因此它永远不会看起来屏幕关闭,你不会保存任何电池)。

答案 4 :(得分:0)

ya thair是你可以使用未记录的函数GSEventSetBacklightFactor(1)的方法;这将使屏幕变暗。如果将0替换为0,则屏幕将关闭。然后你必须按home键。使用这个你必须导入一个priate框架图形服务框架