20

有没有办法以编程方式关闭 iOS 中的显示?不仅仅是调低亮度,而是像电话应用程序那样关闭。我很高兴使用私有 API,因为这是供个人使用的。

谢谢!

4

6 回答 6

25

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

[UIDevice currentDevice].proximityMonitoringEnabled = YES;
于 2012-10-15T18:53:24.410 回答
15

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

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

于 2012-10-17T22:28:47.143 回答
4

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

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

于 2010-10-16T19:55:48.153 回答
0

你有没有尝试过:

[[UIScreen mainScreen] setBrightness: yourvalue];

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

于 2012-10-15T21:24:33.307 回答
0

接近功能不适用于所有设备。这个问题有一个更简单的解决方案,无需借助私有 API。

迅速

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

没有wantsSoftwareDimming,背光将永远不会完全关闭。文档有这样的警示句:

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

于 2017-11-27T03:13:57.543 回答
-1

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

链接可能会有所帮助。

于 2010-10-16T20:04:29.257 回答