web-dev-qa-db-ja.com

アプリがフォアグラウンドモードのときにiPhone / iPadの自動ロックを無効にする方法は?

音楽/ビデオプレーヤーアプリを開発していて、アプリがフォアグラウンドにあるときに自動ロックを無効にする方法を知っている必要があります。

[[UIApplication sharedApplication] setIdleTimerDisabled:YES];および[[UIApplication sharedApplication] setIdleTimerDisabled:NO];ある時点で、それらを配置するのに最適な場所はどこですか?

31
jMelnik

のアイドルタイマーを有効にする

- (void)applicationWillResignActive:(UIApplication *)application

そしてそれを無効にします

- (void)applicationDidBecomeActive:(UIApplication *)application
24
Erik Aigner

無効にするのに最適な場所は、didFinishLaunchingWithOptionsです。アプリがバックグラウンドにある場合、システムは自動的に設定を無効にします。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    application.idleTimerDisabled = YES; 
    return YES;
}

アラートが表示されたとき(メール、メッセージ、カレンダーイベントなど)、または通知センターまたはコントロールセンターが稼働しているときに、受け入れられた回答が自動ロックを妨げないため、この代替案を投稿しました。

8
malhal

Swift 3.0:

Inside AppDelegate.Swift: _application.idleTimerDisabled = true_

AppDelegate.Swiftの外部:UIApplication.shared().isIdleTimerDisabled = true

3
Crashalot

そしてSwift 3.0:

UIApplication.shared().isIdleTimerDisabled = true
1
Lukl

私の2セント:xcode 9の場合:

 application.idleTimerDisabled = true

..... AppDelegate.Swift:28:15:「idleTimerDisabled」の名前が「isIdleTimerDisabled」に変更されました

そう:

application.isIdleTimerDisabled = true
1
ingconti