[英]Respring from PreferenceLoader
我正在使用首选项加载程序将自定义设置加载到设置应用中。 我想知道如何从“首选项加载程序”设置面板重新启动设备。 请帮我。 提前致谢。
我尝试过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
...但是它是免费的,稳定的,并且得到了广泛的使用和喜爱,这似乎并不是一个很大的限制。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.