如何以编程方式锁定和解锁iPhone的主屏幕(即设备本身)?
答案 0 :(得分:26)
这是不可能的。但是,您可以在应用运行时“阻止”手机锁定。 [UIApplication sharedApplication].idleTimerDisabled = YES
应该这样做。
答案 1 :(得分:23)
可以通过调用GSEventLockDevice()来完成;从你的应用程序。可以在GraphicsServices.framework中找到此函数。
答案 2 :(得分:4)
这已经解决了。您可以在Github上找到它: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);
}
答案 3 :(得分:2)
有可能使用未记录的Apple函数(可能是GSEventLockDevice()?)但它肯定会导致自动App Store REJECTION。
Apple根本不希望任何人摆弄这样的核心功能。
答案 4 :(得分:1)
如果您想这样做,Apple永远不会批准,您的应用必须越狱。您可以通过在项目上调用Private框架来完成此操作。你可以使用GraphicsServices.framework
。
注意:
这个GraphicsServices.framework
是一个私有框架。 Apple永远不会接受您的应用。通过调用GSEventLockDevice()
方法,您可以轻松锁定或解锁设备。此GSEventLockDevice()
位于GSEvent.h
。
我希望这个可以帮助你。
如果您仍然遇到任何问题,请告诉我
答案 5 :(得分:0)
我不相信有办法实现这一目标。
我认为可能的一件事是阻止iPhone锁定。然后,您可以构建一个复制锁定解锁功能的视图,您仍然可以控制手机。
答案 6 :(得分:0)
它基本上是不可能的,因为这可能只是Apple可以使用的私有框架的一部分。有一些应用程序,如虚假的来电应用程序,使用“假”锁屏,但正如你所指出的,按下主页按钮退出应用程序,使你的锁屏无用。
答案 7 :(得分:-1)
描述锁定和解锁。我会尝试为view属性启用= YES并启用= NO的开关。所以基本上你可以禁用所有UIGestureRecognizers
和'锁定'屏幕,如果这是你的意思。我将其UIbuttons
添加为IBOutlet
以及IBAction
时,我会将其与{{1}}一起使用,因此它们是一个对象,可以在属性级别进行修改。我正在研究这件事。我会发表我的发现。