ユーザーが設定のスイッチを介してidleTimerDisabledをYESまたはNOに設定できるiPadアプリがあります。その部分はうまく機能します。ただし、アプリを初めて実行する場合、アプリ デリゲートの didFinishLaunchingWithOptions メソッドで最初に YES に設定しても機能しません (いずれにせよ、デバイスは自動的にスリープします)。
他のスレッドで説明されているように、最初に NO に設定してから YES に設定するハックを試しましたが、役に立ちませんでした。設定の他のすべての側面 (standardUserDefaults) も正常に機能しています。
関連するコードは次のとおりです。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// if app run for the first time, set these as defaults
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
if (![prefs objectForKey:@"autoSleep"]) {
// this conditional code runs, as traced using NSLog
[prefs setBool:YES forKey:@"autoSleep"];
application.idleTimerDisabled = NO;
application.idleTimerDisabled = YES;
}
}