关闭iPhone OS(iOS)中的显示

nit*_*sky 16 iphone iphone-privateapi ios

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

谢谢!

iMa*_*euB 23

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

[UIDevice currentDevice].proximityMonitoringEnabled = YES;
Run Code Online (Sandbox Code Playgroud)


Eli*_*eos 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");
Run Code Online (Sandbox Code Playgroud)

然后使用

SBDimScreen(port,YES); 
Run Code Online (Sandbox Code Playgroud)

每当你想昏暗的时候,

SBDimScreen(port,NO);
Run Code Online (Sandbox Code Playgroud)

无论何时你想要解开.

在iOS6上:

void (*BKSDisplayServicesSetScreenBlanked)(BOOL blanked) = (void (*)(BOOL blanked))dlsym(RTLD_DEFAULT, "BKSDisplayServicesSetScreenBlanked");
Run Code Online (Sandbox Code Playgroud)

然后使用:

BKSDisplayServicesSetScreenBlanked(1); // 1 to dim, 0 to undim
Run Code Online (Sandbox Code Playgroud)

"暗淡"在这里意味着完全关闭屏幕.这是系统在例如呼叫期间发生接近事件时使用的内容.

  • 你在iOS 6上试过吗?它默默地失败(没有做任何事情).我觉得我在内部会检查一些权利. (2认同)

Ada*_*dam 4

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

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