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

时间:2009-05-07 04:57:35

标签: iphone

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

8 个答案:

答案 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}}一起使用,因此它们是一个对象,可以在属性级别进行修改。我正在研究这件事。我会发表我的发现。