App内如何实现锁屏

有没有私有API可以实现点击APP内某个按钮就能锁屏?求大神指导

cycript注入SpringBoard
[UIApp _lockButtonDown:nil fromSource:1]
[UIApp _lockButtonUp:nil fromSource:1]

SBLockScreenManager* mgr;
mgr = [objc_getClass("SBLockScreenManager") sharedInstance];
[mgr lockUIFromSource:1 withOptions:nil];
SBLockScreenManager* mgr;
mgr = [objc_getClass("SBLockScreenManager") sharedInstance];
if ([mgr isUILocked])
{
    [mgr attemptUnlockWithPasscode:@"xxxxxx"];
    or
    [mgr unlockUIFromSource:0 withOptions:nil];
}
2 个赞

_lockButtonDown函数是哪里来的。。。
两行代码能不能讲详细点

touch assistant 的那个锁屏也是调用的这个方法吗?

没分析过 touch assistant

这是SpringBoard的两个方法。
[SpringBoard _lockButtonDown: fromSource:]
[SpringBoard _lockButtonUp: fromSource:]

第一个方法是锁屏键按下,第二个方法是锁屏键放开。要是只有第一个函数,会变成关机界面。

请问,Daemon如何调用呢?

注入SB, 直接调不了

dlopen 这种方式调用吗?注入SB 听的不大懂~

注入SpringBoard

注入Springboard ,那只能在tweak 里面实现吗?daemon 如果需要调用的话,是否需要通过dlopen 和dlsym实现?