我想检查屏幕是否被私有 api 锁定。
我从谷歌得到一些代码:
#import <SpringBoard/SpringBoard.h>
#import <SpringBoard/SBAwayController.h>
Class clsAway = objc_allocateClassPair(clsAlert, "SBAwayController", 0);
objc_registerClassPair(clsAway);
Class clsAwayController = objc_getClass("SBAwayController");
SBAwayController * controller = [clsAwayController sharedAwayController];
if ([controller isLocked]){
NSLog(@"double check Home ,now YES Lock");
}
else{
NSLog(@"double check Home ,now NO Lock");
}
为了使这些代码正常工作,我从 kennytm 的 github 下载私有头文件并导入 SpringBoard.h 和 SBAwayController.h 编译好并在我的 iPhone 4S 上运行它,似乎我可以使用 objc_getClass("SBAwayController "); 但是程序崩溃了:
SBAwayController * controller = [clsAwayController sharedAwayController];
出现错误:'+[SBAwayController sharedAwayController]:无法识别的选择器发送到类 0x1456c0'
我需要任何其他工作才能使这些代码正常工作吗?我知道私有 api 的使用会导致 Apple 的拒绝,但我只想知道如何使它工作。感谢您的任何建议!