2012-03-28 10 views
38

次のコード行は、アプリが何らかのアイドル時間の後に自動的に画面をロックするのを防ぎます。iOS 5.1の自動画面ロックを無効にする

[UIApplication sharedApplication].idleTimerDisabled = YES; //write this in applicationDidFinishLaunching 

これはiOS 5.0までうまく動作します。 しかし、iOS 5.1はこの行を尊重せず、何らかのアイドル時間の後に画面をロックします。 この刺激的な問題を解決するにはどうすればよいですか?

ありがとうございました。

編集:その5.0.1デバイスにインストールされた場合、同じコードが正常に動作します

。しかし、私はなぜそれが5.1デバイスで動作していないのかわかりません。

+2

。バグを報告したい場合 - > http://bugreport.apple.com/ –

+0

このコードはどこで呼びますか?実行されていることを確認していますか(ブレークポイントを設定してチェックしていますか?) Appleの例は、デリゲートの 'applicationDidFinishLaunching'に' application.idleTimerDisabled = YES; 'を置くことです。 –

+0

はい@NickBull私はapplicationDidFinishLaunchingの中にコードを入れました。しかし、あなたが見ることができるように、5.0.1のデバイスにインストールされているとき、同じコードがうまく動作します。 – Selvin

答えて

24

に私のために働きました。しかし、警告があります。私はスナップショットを撮るためにカメラユーティリティを呼び出すたびに、idleTimerDisableがシーンの背後でNOに設定されることに気付きました。だから、右、私は私の画像をアップロードした後、私は再び次のコード行を呼び出す必要がありました:

[UIApplication sharedApplication].idleTimerDisabled = YES; 

その必要が同じ戦略を通じてより多くの場所がある場合、私は驚かないだろう。これまでのところ、このアプローチは私のために問題なく動作しました。

+1

私は本当にアプリケーション全体でidleTimerDisabled = YESを必要としません。 [[UIApplication sharedApplication] setIdleTimerDisabled:YES]を設定することができます。 [[UIApplication sharedApplication] setIdleTimerDisabled:NO];で必要がなくなったらコードを必要とするところでコードを必要とします。 –

3

を参照してください:あなたが必要な場合のみ、このプロパティを設定する必要がありますし、必要がもう存在しないときNOにそれをリセットしないようにしてくださいする必要があります。ほとんどの アプリケーションでは、アイドル時間が経過したときにシステムをオフにする必要があります。 これには、オーディオアプリケーションが含まれます。オーディオセッションサービスの適切な使用 を使用すると、画面がオフになると再生と録音が中断されずに実行されます( )。 がアイドルタイマーを無効にする唯一のアプリケーションは、アプリケーション、ゲーム、または 類似のプログラムと散発的なユーザーのやり取りをマッピングすることです。

多分あなたは目を覚ますの許容時間を超えていますか?

+0

私のアプリケーションは散発的なユーザーインタラクションを伴うアプリケーションですが、コードは5.0.1でも問題なく動作しています。それは奇妙なことです。 – Selvin

0

アプリケーションがいくつかのバックグラウンドタスク(GPSの場所の更新など)に登録されている場合は問題ありません。

24
[[UIApplication sharedApplication] setIdleTimerDisabled: YES]; 

はちょうど私のためによく働く

- (BOOL) application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions 
[UIApplication sharedApplication].idleTimerDisabled = YES;を設定するのiOS 5.1

1

私はその古いですけど、私はこれは良い発見し、スウィフトにあなたはそれがあなたの答えを

application.idleTimerDisabled = true

このような感謝を見て行うことができます!私は今のXcode 7ベータ3(スウィフト2)スウィフトのために

+0

Swift 3: 'application.isIdleTimerDisabled = true' – Crashalot

0

使用し、私は、デリゲートの外で行うためにこれを使用する:

バグのような音
UIApplication.sharedApplication().idleTimerDisabled = true 
関連する問題