繁体   English   中英

从PreferenceLoader重新产生

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM