2013-09-10 4 views
1

Я использую Preference Loader для загрузки моих пользовательских настроек в приложение настроек. Я хотел бы знать, как сделать устройство выполненным с моей панели настроек Preload Loader. Пожалуйста, помогите мне. Спасибо заранее.Respring from PreferenceLoader

Ive попробовал system("killall SpringBoard");, но ничего не происходит.

ответ

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 

... но, как это бесплатно, стабильной и широко используется и любил, что не кажется большим ограничением.