web-dev-qa-db-ja.com

iOS 5.1で自動画面ロックを無効にする

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

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

IOS 5.0まではうまく機能します。ただし、iOS 5.1はこの行を尊重せず、アイドル時間が経過すると画面をロックします。この刺激的な問題を解決する方法は?

ありがとう。

編集:

5.0.1デバイスにインストールすると、同じコードが正常に機能します。しかし、5.1デバイスで動作しない理由はわかりません。

39
Selvin

[UIApplication sharedApplication].idleTimerDisabled = YES;を設定するだけ

- (BOOL) application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions

私にとってはうまくいきます。ただし、注意点があります。スナップショットを撮るためにカメラユーティリティを呼び出すたびに、idleTimerDisable[〜#〜] no [〜#〜]の背後で設定されることに気付きました。そのため、画像をアップロードした直後に、次のコード行を再度呼び出す必要がありました。

[UIApplication sharedApplication].idleTimerDisabled = YES;

同じ戦略を必要とする場所がもっとたくさんあっても驚かないでしょう。これまでのところ、このアプローチは問題なく機能しました。

24
Aki
[[UIApplication sharedApplication] setIdleTimerDisabled: YES];

iOS 5.1で私のために働いた

25
orkoden

いいえ違いはありません。別の間違いがあるかもしれません。
を参照してください iOS 5.0から5.1へのAPI差分

5
calimarkus

重要:このプロパティは必要な場合にのみ設定し、必要がなくなったら必ずNOにリセットする必要があります。ほとんどのアプリケーションでは、アイドルタイマーが経過したときにシステムが画面をオフにする必要があります。これにはオーディオアプリケーションが含まれます。オーディオセッションサービスを適切に使用すると、画面がオフになったときに再生と録音が中断されることなく続行されます。アイドルタイマーを無効にする必要がある唯一のアプリケーションは、散発的なユーザーインタラクションでアプリケーション、ゲーム、または同様のプログラムをマッピングすることです。

たぶん、あなたは起きているの許容時間制限を超えていますか?

3
jacekmigacz

私はそれが古いことを知っていますが、私はこれが良いとわかりましたSwift

application.idleTimerDisabled = true

回答ありがとうございます!私は今xcode 7 Beta 3を使用しています(Swift 2)

1

アプリケーションがGPSロケーションの更新などのバックグラウンドタスクに登録されている場合は正常に機能します。

0
tomislav

Swiftの場合、これを使用してデリゲートの外で実行します。

    UIApplication.sharedApplication().idleTimerDisabled = true
0