有没有办法以编程方式关闭 iOS 中的显示?不仅仅是调低亮度,而是像电话应用程序那样关闭。我很高兴使用私有 API,因为这是供个人使用的。
谢谢!
有没有办法以编程方式关闭 iOS 中的显示?不仅仅是调低亮度,而是像电话应用程序那样关闭。我很高兴使用私有 API,因为这是供个人使用的。
谢谢!
您可以通过启用接近监控来关闭显示。通过将手机放在耳朵附近或将手指放在手机顶部的红外传感器上,它会自动关闭屏幕,就像在电话应用程序中一样。
[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
这里的“暗淡”意味着完全关闭屏幕。这是系统在通话中发生邻近事件时所使用的。
我知道的唯一方法,公共或私人,是使用电源按钮。
你可能会看-[UIApplication setProximitySensingEnabled:(BOOL)]
,或者-[UIApplication setIdleTimerDisabled:YES]
,这可能会导致一些有用的东西
接近功能不适用于所有设备。这个问题有一个更简单的解决方案,无需借助私有 API。
迅速
UIScreen.main.wantsSoftwareDimming = true
UIScreen.main.brightness = 0.0
没有wantsSoftwareDimming
,背光将永远不会完全关闭。文档有这样的警示句:
默认值为假。启用它可能会导致性能下降。
我认为除了改变亮度外,没有任何东西可以关闭显示器(模拟 iphone 睡眠按钮)。
此链接可能会有所帮助。