2016-10-13 60 views
0

我有一個應用程序與睡眠計時器,用戶可以選擇一段時間後,應用程序將暫停。基本上我做的是:空閒計時器從未激活,所以應用程序不會睡覺

  1. 使用此代碼的應用程序的啓動禁用程序定時器:

    [UIApplication的sharedApplication] setIdleTimerDisabled:YES];

  2. 當睡眠定時器期滿:

    [[UIApplication的sharedApplication] setIdleTimerDisabled:NO];

一旦用戶首選項中的自動鎖定值啓動,屏幕變暗並且應用程序進入睡眠狀態。

它工作正常,但不再由於某種原因。我正在排除故障,並且已經註釋了涉及setIdleTimerDisabled的命令,但它從未進入睡眠狀態。

如果我用([UIApplication sharedApplication] .isIdleTimerDisabled)測試idleTimer的狀態,我可以看到IdleTimer沒有真正被禁用,所以它不能這樣。

還有什麼可以防止設備睡覺?當應用程序沒有任何交互時。我的設備運行9.3.3以防萬一。

回答

0

我想我找到了答案 - 實際上有兩個問題。 1.只要我在Xcode上運行並構建,應用程序就永遠不會入睡(我認爲)。 2.我的應用程序的聲音,所以我做這樣的事情,以確保控制和音頻仍然工作在當設備被鎖定:

audioSession = [AVAudioSession sharedInstance]; 
    NSError *setCategoryError = nil; 
     [audioSession setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError]; 

然而,這可以防止設備進入休眠狀態 - 聲音繼續播放。因此,我現在要做的是,一旦屏幕被鎖定,我改變audioSession的類別

[audioSession setCategory:AVAudioSessionCategoryAmbient error:&setCategoryError]; 

這可是導致我還沒有想出了另一個問題...