closuresiPhone OS(iOS)中的显示

有没有办法以编程方式closures在iOS中的显示? 不只是把亮度降低,而是像电话应用那样。 我很高兴使用私人API,因为这是个人使用。

谢谢!

您可以通过启用接近度监控来closures显示器。 它会自动closures屏幕,就像电话应用程序一样,将手机放在耳边或将手指放在手机顶部的红外传感器上。

[UIDevice currentDevice].proximityMonitoringEnabled = YES; 

你可以做到这一点,(当然,使用私人API当然):

在iOS5上:

 #include <stdio.h> #include <dlfcn.h> int (*SBSSpringBoardServerPort)() = (int (*)())dlsym(RTLD_DEFAULT, "SBSSpringBoardServerPort"); int port = SBSSpringBoardServerPort(); void (*SBDimScreen)(int _port,BOOL shouldDim) = (void (*)(int _port,BOOL shouldDim))dlsym(RTLD_DEFAULT, "SBDimScreen"); 

然后使用

 SBDimScreen(port,YES); 

每当你想昏暗,和

 SBDimScreen(port,NO); 

每当你想要修改。

在iOS6上:

 void (*BKSDisplayServicesSetScreenBlanked)(BOOL blanked) = (void (*)(BOOL blanked))dlsym(RTLD_DEFAULT, "BKSDisplayServicesSetScreenBlanked"); 

然后使用:

 BKSDisplayServicesSetScreenBlanked(1); // 1 to dim, 0 to undim 

这里的“暗淡”意味着完全closures屏幕。 当在通话中发生邻近事件时,这是系统使用的。

我知道的唯一方法,公共或私人,是使用电源button。

你可以看看-[UIApplication setProximitySensingEnabled:(BOOL)]-[UIApplication setIdleTimerDisabled:YES] ,这可能会导致一些有用的

你有没有尝试过:

[[UIScreen mainScreen] setBrightness: yourvalue];

SO问题8936999: iPhone:我们如何以编程方式更改屏幕的亮度?

靠近不适用于所有设备。 这个问题有一个更简单的解决scheme,而不诉诸私人的API。

迅速

 UIScreen.main.wantsSoftwareDimming = true UIScreen.main.brightness = 0.0 

没有wantsSoftwareDimming ,背光将永远不会完全closures。 文档有这个警示句子:

默认值是false。 启用它可能会导致性能下降。

除了改变亮度,我不认为有任何closures显示器(模拟iPhone睡眠button)。

这个链接可能有帮助。