5

私は現在、iPhoneを振るだけの非常にシンプルなアプリを持っています。ただし、iPhone がタッチ イベントを取得していないため、最終的には画面が暗くなり、自動ロックされます。振ったときにオートロックのタイムアウトをリセットする方法があるかどうか疑問に思っていましたか?

自動ロックを完全に無効にするには、次のようにします。

[[ UIApplication sharedApplication ] setIdleTimerDisabled: YES ]

しかし、完全に無効にしたくはありません。iPhone が合法的に使用されていない場合、期待どおりに自動ロックされるはずです。

ご協力いただきありがとうございます。

4

2 に答える 2

6

これが私のアプリで使用するコードです。背景:私のアプリにはWebサーバーが組み込まれているため、ユーザーはWIFIを介してブラウザーからデータにアクセスでき、サーバーにリクエストが到着するたびに、ロックタイマーを延長します(この場合は最低2分間。再度有効にすると、デフォルトの時間が追加されます)。

// disable idle timer for a fixed amount of time.
- (void) extendIdleTimerTimeout
{
    // cancel previous scheduled messages to turn idle timer back on
    [NSObject cancelPreviousPerformRequestsWithTarget:self
        selector:@selector(reenableIdleTimer)
        object:nil];
    // disable idle timer
    [[UIApplication sharedApplication] setIdleTimerDisabled:YES];

    // re-enable the timer on after specified delay.
    [self performSelector:@selector(reenableIdleTimer) withObject:nil afterDelay: 60 * 2];

}

- (void) reenableIdleTimer
{
sharedApplication].idleTimerDisabled );
    [NSObject cancelPreviousPerformRequestsWithTarget:self
        selector:@selector(reenableIdleTimer)
        object:nil];
    // disable idle timer
    [[UIApplication sharedApplication] setIdleTimerDisabled:NO];
}
于 2009-11-07T17:21:41.990 に答える