2013-01-24 15 views
5

Ho un'app che utilizza la videocamera per non oscurare lo schermo. Inibendo lo schermo da oscuramento funziona bene in questo modo:iOS - setIdleTimerDisabled: NO non funziona

- (void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    [[UIApplication sharedApplication] setIdleTimerDisabled:YES]; 
} 

Tuttavia quando l'applicazione è chiusa ed entra nel fondo, impostando l'IdleTimer torna a NO non funziona. Lo schermo rimane acceso per sempre sulla schermata principale. Questo è il modo in cui sto cercando di ottenere questo risultato.

- (void)applicationWillResignActive:(UIApplication *)application 
{ 
    [[UIApplication sharedApplication] setIdleTimerDisabled:NO]; 
} 

C'è un posto migliore per aggiungere questa riga di codice?

+1

Questo può essere solo un bug con dev build. Ho diverse app che costringono lo schermo a non attenuarsi mentre sono attive, ma non ne ho mai avuto uno in grado di mantenere la schermata iniziale o un'altra app. Le impostazioni dell'app sono quasi sempre specifiche per mantenere puro il sistema. –

+0

Hai provato questo collegato al tuo Mac e XCode? Penso che, in tal caso, l'iDevice non voglia sempre iniziare il "sonno" ... – Larme

+0

@Larme, sì, questo è stato il mio primo pensiero ma l'ho sganciato e non si attenua. –

risposta

0

Perché non provare a utilizzare il codice in

applicationWillEnterForeground

metodo delegegate.

Spero che il lavoro sia per voi.

9

Lo stesso problema si presentava con me. In realtà funziona ma funziona solo quando il tuo dispositivo non è connesso a xCode. Prova a scollegare il dispositivo e poi prova questa funzionalità.

+0

Trascorro l'intera giornata cercando di capire il problema ma è a causa di xcode. mi hai salvato la vita grazie. –

-1

versione Swift:

public func applicationWillResignActive(application: UIApplication) { 
    UIApplication.sharedApplication().idleTimerDisabled = false 
} 


public func applicationDidBecomeActive(application: UIApplication) { 
    UIApplication.sharedApplication().idleTimerDisabled = true 
} 
Problemi correlati