以编程方式locking和解锁iPhone屏幕

我如何以编程方式locking和解锁iPhone的主屏幕(即设备本身)?

这是不可能的。 不过,当您的应用运行时,您可以“防止”手机locking。 [UIApplication sharedApplication].idleTimerDisabled = YES应该这样做。

可以通过调用GSEventLockDevice()来完成。 从你的应用程序。 这个函数可以在GraphicsServices.framework中find。

这已经解决了。 你可以在Github上find它: https : //github.com/neuroo/LockMeNow (在IOS 7下工作)

 char*framework="/System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices"; void *handle= dlopen(framework, RTLD_NOW); if (handle) { void (*GSEventLockDevice)() = dlsym(handle, "GSEventLockDevice"); if (GSEventLockDevice) { GSEventLockDevice(); NSLog(@"Phone is Locked"); //......... } dlclose(handle); } 

这可能是无证的苹果function(也许GSEventLockDevice()?),但它肯定会导致自动App Store拒绝。

苹果公司根本不希望任何人摆弄这样的核心function。

如果你想这样做,苹果永远不会批准这一点,你的应用程序必须越狱。 你可以通过在你的项目上调用Private框架来做到这一点。 您可以使用GraphicsServices.framework

注意 :

GraphicsServices.framework是一个私人框架。 苹果绝不会接受你的应用程序。 通过调用GSEventLockDevice()方法,您可以轻松locking或解锁设备。 这个GSEventLockDevice()驻留在GSEvent.h

我希望这个帮助你。

请让我知道如果你仍然面临任何问题

我不相信有办法做到这一点。

有一件事我相信是可能的,就是阻止iPhonelocking。 你可以build立一个复制locking解锁function的视图,你仍然可以控制电话。

它基本上是不可能的,因为这可能是只能由苹​​果使用的私有框架的一部分。 有一些应用程序,如假的来电者的应用程序,利用“假”的锁屏,但正如你所指出的,按Home键退出应用程序,使你的锁屏无用。

描述locking和解锁。 我会尝试一个开关,启用= YES和启用= NO视图属性。 所以基本上你可以禁用所有的UIGestureRecognizers并“locking”屏幕,如果这是你的意思。 一旦我把它们作为一个IBOutlet以及IBAction添加到UIbuttons我就可以做到这UIbuttons ,所以它们是一个对象,可以在属性级别进行修改。 我现在正在处理这件事情。 我会发表我的发现。