关闭iPhone OS(iOS)中的显示

时间:2010-10-16 18:21:18

标签: iphone ios iphone-privateapi

有没有办法以编程方式关闭iOS中的显示?不只是降低亮度,而是关闭电话应用程序的方式。我很乐意使用私有API,因为这是供个人使用。

谢谢!

6 个答案:

答案 0 :(得分:23)

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

[UIDevice currentDevice].proximityMonitoringEnabled = YES;

答案 1 :(得分:14)

你可以这样做(显然,使用私有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

“Dim”在这里意味着完全关闭屏幕。这是系统在例如在通话中发生接近事件。

答案 2 :(得分:4)

我所知道的唯一公共或私人方式是使用电源按钮。

您可以查看-[UIApplication setProximitySensingEnabled:(BOOL)]-[UIApplication setIdleTimerDisabled:YES],这可能会带来一些有用的信息

答案 3 :(得分:0)

你试过了吗?

[[UIScreen mainScreen] setBrightness: yourvalue];

问题8936999:iPhone: How can we programmatically change the brightness of the screen?

答案 4 :(得分:0)

接近不适用于所有设备。对于这个问题,有一个更简单的解决方案,而不需要使用私有API。

<强>夫特

master

如果没有UIScreen.main.wantsSoftwareDimming = true UIScreen.main.brightness = 0.0 ,背光将永远不会完全关闭。 文档有这个警示句:

  

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

答案 5 :(得分:-1)

除了改变亮度之外,我认为没有关闭显示器(模拟iphone睡眠按钮)。

link可能会有所帮助。