以编程方式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
,所以它们是一个对象,可以在属性级别进行修改。 我现在正在处理这件事情。 我会发表我的发现。