10

iOSデバイスのスリープを停止する方法を理解しましたが(以下を参照)、その設定を元に戻すのに問題があります。Appleのドキュメントによると、idleTimerDisabledプロパティの値を変更するだけです。しかし、これをテストすると、機能しません。

これは私が最初にデバイスがスリープ状態になるのを止める方法です:

    //need to switch off and on for it to work initially
    [UIApplication sharedApplication].idleTimerDisabled = NO;
    [UIApplication sharedApplication].idleTimerDisabled = YES;

私は次のことがトリックをするだろうと思ったでしょう:

    [UIApplication sharedApplication].idleTimerDisabled = NO;

Appleのドキュメントから:


このプロパティのデフォルト値はNOです。ほとんどのアプリケーションがユーザー入力として短時間タッチしない場合、システムはデバイスを「スリープ」状態にして画面が暗くなります。これは電力を節約する目的で行われます。ただし、ユーザー入力がないアプリケーションは加速度計(ゲームなど)を除いて、このプロパティをYESに設定すると、「アイドルタイマー」を無効にしてシステムのスリープを回避できます。


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

4

1 に答える 1

40

Xcodeから実行するときにこれを試していますか?Xcodeから実行すると、設定したかどうかに関係なく、常にアイドルタイマーが無効になります[UIApplication sharedApplication].idleTimerDisabled。iPhone / iPod touch/iPadから手動でアプリを開いて試すことができます。

于 2012-10-12T09:33:48.133 に答える