【发布时间】:2013-02-13 20:18:31
【问题描述】:
我正在为越狱制作一个应用程序,当用户启动应用程序时会锁定设备。我从GraphicsServices.framework 尝试过GSEventLockDevice(); 但这不能正常工作,因为它会锁定屏幕但不会关闭屏幕电源。没有MobileSubstrate还有其他锁屏方法吗?
【问题讨论】:
标签: ios jailbreak lockscreen tweak
我正在为越狱制作一个应用程序,当用户启动应用程序时会锁定设备。我从GraphicsServices.framework 尝试过GSEventLockDevice(); 但这不能正常工作,因为它会锁定屏幕但不会关闭屏幕电源。没有MobileSubstrate还有其他锁屏方法吗?
【问题讨论】:
标签: ios jailbreak lockscreen tweak
就像另一种选择,check out this answer,它使用SBDimScreen()。您可以将它与 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 有一个不同的调用。
【讨论】:
看看这几个问题:
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?
这个想法是您可以模拟系统范围的事件。事件之一是断电事件。如果你模拟它,它会关闭设备并锁定它。
顺便说一句。您可能有兴趣 google 更多关于 GSEvent 的信息,这是模拟的关键。
这里有几个有用的链接:
http://iphonedevwiki.net/index.php/GSEvent
http://networkpx.blogspot.com/2009/08/gsevent-recording-and-playback-in-30.html
此外,这种方法不仅限于越狱手机。它也适用于被监禁的手机(但是,您将无法将其发布到 AppStore)。
【讨论】: