我正在使用 Preference Loader 将我的自定义设置加载到设置应用程序中。我想知道如何让设备从我的 Preference Loader 设置面板中重新启动。请帮我。提前致谢。
我试过system("killall SpringBoard");
但没有任何反应。
我正在使用 Preference Loader 将我的自定义设置加载到设置应用程序中。我想知道如何让设备从我的 Preference Loader 设置面板中重新启动。请帮我。提前致谢。
我试过system("killall SpringBoard");
但没有任何反应。
可能有很多方法可以做到这一点,但一种方法是利用我在这个答案中使用的相同技术。本质上,问题在于您没有以足够的权限发出命令。
您可以通过将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
...但由于它是免费的、稳定的、被广泛使用和喜爱的,这似乎不是一个很大的限制。