【问题标题】:iOS Private API: lock device and power off the screeniOS Private API:锁定设备并关闭屏幕
【发布时间】:2013-02-13 20:18:31
【问题描述】:

我正在为越狱制作一个应用程序,当用户启动应用程序时会锁定设备。我从GraphicsServices.framework 尝试过GSEventLockDevice(); 但这不能正常工作,因为它会锁定屏幕但不会关闭屏幕电源。没有MobileSubstrate还有其他锁屏方法吗?

【问题讨论】:

    标签: ios jailbreak lockscreen tweak


    【解决方案1】:

    就像另一种选择,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 有一个不同的调用。

    【讨论】:

    • 我正在学习 MobileSubstrate,也许比这更容易...谢谢!
    • 嗨@Nate,您能帮我进行多点触控模拟吗?非常感谢。stackoverflow.com/questions/17907811/…
    • 它不适用于 IOS 7,而是控制台显示警告(: -[BKWorkspaceServerManager _handleEvent:] Unknown GSEvent, type = 1014; Ignoring.)
    • @ShabiTech,许多私有 API 在 iOS 7 中停止工作(或开始需要授权)。如果您想知道如何为 iOS 7/8 执行此操作,您应该发布 new 问题。出于历史目的,应保留此问题和答案。如果 iOS 7 需要新的解决方案,我们需要一个单独的问题。谢谢。
    【解决方案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?

    这个想法是您可以模拟系统范围的事件。事件之一是断电事件。如果你模拟它,它会关闭设备并锁定它。

    顺便说一句。您可能有兴趣 google 更多关于 GSEvent 的信息,这是模拟的关键。

    这里有几个有用的链接:

    http://iphonedevwiki.net/index.php/GSEvent

    http://networkpx.blogspot.com/2009/08/gsevent-recording-and-playback-in-30.html

    此外,这种方法不仅限于越狱手机。它也适用于被监禁的手机(但是,您将无法将其发布到 AppStore)。

    【讨论】:

    猜你喜欢
    • 2018-10-12
    • 2016-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多