次のコードを使用して、ジェイルブレイクされたデバイスのバックグラウンドで実行されている iOS デーモン アプリからスリープ モードを防止しようとしています。
- (void) disableSleepModeTimerEvent:(NSTimer *) timer;
{
[self writeTextFile]; // for debug purposes
[UIApplication sharedApplication].idleTimerDisabled = NO;
[UIApplication sharedApplication].idleTimerDisabled = YES;
}
idleTimerDisabled を YES に設定するという単純なステートメントではうまくいかなかったので、スタックオーバーフローに関する同様の質問の回答でアドバイスされているように、10 秒ごとに NSTimer によって呼び出されるメソッドに入れました。悲しいことに、それもうまくいきません。
タイマー イベントがトリガーされます (ファイルをディレクトリに書き込み、10 秒間隔で表示され、10 秒ごとにファイルが追加されることを確認するため)、デバイスはまだスリープ状態になります。手動でスリープ解除した後、タイマーは本来の業務に戻り、ファイルの書き込みを再開しますが、明らかにスリープを無効にしても機能しませんでした。
このアプリでサーバーを実行していますが、何かを提供する必要がある場合は、スリープ モードを無効にしたいと考えています。サービングが完了したら、スリープモードを再度有効にする必要があります。目に見えないアプリでこれを達成することは可能ですか?