ran*_*dom 6 iphone objective-c ios swift
我试图在给定的时间段后自动锁定设备.我见过的唯一能让这成为可能的是这样做:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
UIApplication.sharedApplication().idleTimerDisabled = true
NSTimer.scheduledTimerWithTimeInterval(30, target: self, selector: "lockScreen", userInfo: nil, repeats: false)
return true
}
func lockScreen() {
print("locking screen")
UIApplication.sharedApplication().idleTimerDisabled = false
}
Run Code Online (Sandbox Code Playgroud)
但它似乎不起作用.还有其他选择吗?市场上有一款名为CellControl的应用程序可以做到这一点,所以我知道它是可能的,似乎无法弄清楚如何.
我也试过从这个答案中取得的obj-c
这是他们的应用程序工作的剪辑,从公共应用程序商店下载.您可以看到,只要我按下主页按钮并退出应用程序,它们就会强行锁定屏幕.
我也看到使用私有框架,这肯定会要求拒绝:
char *gsDylib = "/System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices";
void *handle = dlopen(gsDylib, RTLD_NOW);
if (handle) {
BOOL locked = FALSE;
void (*_GSEventLockDevice)() = dlsym(handle, "GSEventLockDevice");
if (_GSEventLockDevice) {
_GSEventLockDevice();
//...
}
dlclose(handle);
//...
}
Run Code Online (Sandbox Code Playgroud)
首次启动应用时,他们会要求获得以下许可:
我不知道这些框架中的任何一个是否能让你锁定屏幕,但也许?...
快速更新:
经过JBA的一些研究和巨大帮助后,我越来越接近解决方案了.似乎Cell Control充当键盘外围设备,允许它们发送锁定屏幕的命令.所以我买了一个蓝牙键盘,试着猜猜是什么......就像魅力一样.我可以从中锁定和解锁我的设备.所以我把键盘连接到我的mac(通过蓝牙)来嗅探数据包.在键盘上按下锁定按钮时会记录此事件:
从我所知道的(我不是这方面的专家),是触发锁定,它发送的是一个鼠标事件,所有事件数据都被清零.除了按下任何按钮之外.我的目标是在Arduino上复制这个......所以还有更多的工作要做.
| 归档时间: |
|
| 查看次数: |
3847 次 |
| 最近记录: |