1

我正在使用 Preference Loader 将我的自定义设置加载到设置应用程序中。我想知道如何让设备从我的 Preference Loader 设置面板中重新启动。请帮我。提前致谢。

我试过system("killall SpringBoard");但没有任何反应。

4

1 回答 1

1

可能有很多方法可以做到这一点,但一种方法是利用我在这个答案中使用的相同技术。本质上,问题在于您没有以足够的权限发出命令。

您可以通过将killall SpringBoard命令移动到由 SBSettings 的特权守护程序运行的命令脚本中来获得所需的权限。

请参阅此处的参考文档,在调用外部函数和脚本...下。

您将创建一个名为(例如)的可执行com.mycompany.respring脚本, . 在该脚本中,添加

#!/bin/sh
killall SpringBoard

并将其保存在/var/mobile/Library/SBSettings/Commands. 然后,从您的偏好包的 PSListController中,您将添加以下代码:

#import <notify.h>

notify_post("com.mycompany.respring");

发布该自定义通知将导致 SBSettings 的守护进程运行同名的脚本文件。当然,这会强制您的包依赖于 SBSettings(您可以通过将其放在包的DEBIAN/control文件中来做到这一点):

Depends: preferenceloader, sbsettings

...但由于它是免费的、稳定的、被广泛使用和喜爱的,这似乎不是一个很大的限制。

于 2013-09-11T05:17:32.927 回答