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)。
这个链接可能有帮助。