ジェイルブレイクされたiOS用のデーモンを作成していますが、GUIを使用して特定の設定を行いたいと考えています。デーモン用のGUIを持つことは可能ですか?そうでない場合、デーモンと通信できるアプリを作成して、アプリを介してデーモンを制御できるようにするにはどうすればよいですか?
1 に答える
はい、あなたはこれを行うことができます。UIApplication
1つの通常のアプリと、常に実行されるバックグラウンドのLaunchDaemonで構成される複数のアプリがあります。
それはあなたが2人の間でどのような種類の情報を伝えたいかによります。私が使用したパターンの1つ(他にも多くの方法があります)は、共有設定ファイルを使用することです。このファイルをに保存する場合があります/var/mobile/Library/MyAppName/user_preferences.plist
。起動デーモンがこのファイルを読み取り、UIがそれを書き込むことができます。
writeToFile:atomically:
ユーザーがUIを介して一部の設定を変更すると、UIはでplistファイルを書き出すことができますNSDictionary
。次に、設定ファイルを再度読み取る時間であることをデーモンに通知する必要があります。あなたは通知でこれを行うことができます。UIアプリの場合:
#import <notify.h>
notify_post("com.mycompany.settings_changed");
com.mycompany.settings_changed
次に、デーモンで、通知が投稿され たときにiOSによって呼び出されるコールバックメソッドまたはブロックを登録します。
int status = notify_register_dispatch("com.mycompany.settings_changed",
¬ifyToken,
dispatch_get_main_queue(), ^(int t) {
NSLog(@"settings notification received");
[self loadSettings];
});
デーモンのloadSettings
メソッドは、を使用してplistファイルを読み取ることができますdictionaryWithContentsOfFile:
。
後で時間があれば、説明(およびコード)を追加してみます。