我正在为越狱制作应用,以便在用户启动应用时锁定设备。我已尝试GSEventLockDevice();
GraphicsServices.framework
,但这不能正常工作,因为它会锁定屏幕,但不会关闭屏幕电源。是否有其他方法可以在没有MobileSubstrate
的情况下锁定屏幕?
答案 0 :(得分:3)
正如使用SBDimScreen()
的另一种选择check out this answer。您可以将与 GSEventLockDevice()
结合使用。
您现在可能(iOS 5+)需要向您的应用添加权利才能成功使用此呼叫。如果您之前没有这样做过,here is an example of how to do so。显然,在这种情况下,相关权利必须更改为com.apple.backboard.client
。
你也可能会看到@VictorRonin是否已经对此进行过实验,因为他评论了我所链接的问题。我在越狱的iOS 4.2.1设备上测试了SBDimScreen()
,但我的新设备目前无法运行此测试。我稍后会在iOS 5.x上尝试并发布更新。
注意:我与Elias联系的答案为iOS 6提供了一个不同的电话。
答案 1 :(得分:2)
看看这几个问题:
Simulating System Wide Touch Events on iOS
Simulating System Wide Touch Events in iOS without jailbreaking the device
How to send a touch event to iPhone OS?
这个想法是你可以模拟系统范围的事件。其中一项活动是停电事件。如果您模拟它,它将关闭设备并锁定它。
顺便说一句。您可能有兴趣更多地了解GSEvent,这是模拟的关键。
以下是几个有用的链接:
http://iphonedevwiki.net/index.php/GSEvent
http://networkpx.blogspot.com/2009/08/gsevent-recording-and-playback-in-30.html
此外,这种方法不仅限于越狱手机。它也适用于被监禁的手机(但是,你无法将其发布到AppStore)。