我正在使用Preference Loader将自定义设置加载到设置应用中。我想知道如何从我的Preference Loader设置面板中重新启动设备。请帮我。 提前谢谢。
我试过system("killall SpringBoard");
但没有任何反应。
答案 0 :(得分:1)
可能有很多方法可以做到这一点,但一种方法是利用same technique I used in this answer。从本质上讲,问题在于您没有以足够的权限发出命令。
您可以将killall SpringBoard
命令移动到由SBSettings的特权守护程序运行的命令脚本中,从而获得所需的权限。
See reference document here,在调用外部函数和脚本... 下。
您可以创建名为(例如)com.mycompany.respring
的可执行脚本。在该脚本中,添加
#!/bin/sh
killall SpringBoard
并将其保存在/var/mobile/Library/SBSettings/Commands
下。然后,在preference bundle's PSListController内,您可以添加以下代码:
#import <notify.h>
和
notify_post("com.mycompany.respring");
发布该自定义通知将导致SBSettings的守护程序运行同名的脚本文件。当然,这会强制您的包依赖于SBSettings(您可以将其放在包的DEBIAN/control
文件中):
Depends: preferenceloader, sbsettings
...但由于它是免费的,稳定的,广泛使用和喜爱的,这似乎不是一个很大的限制。