Ho una funzione nella mia app (un'app di metronomo per musicisti) per oscurare lo schermo per risparmiare sulla durata della batteria. Per impostare la luminosità, sto usando:Impossibile ripristinare la luminosità all'uscita dell'applicazione
[UIScreen mainScreen].brightness = 0.1;
Mi risparmio la luminosità originale su App avvio in viewDidLoad (...) e il risparmio che ai miei predefiniti dall'utente.
Quando si cambia opinioni in sede di applicazione, posso recuperare la brillantezza originale delle opzioni predefinite dell'utente e ripristino con una chiamata:
[UIScreen mainScreen].brightness = originalBrightness;
Questo funziona bene. Ho messaggi NSLog (...) che mostrano il valore originale, ecc ... quindi il meccanismo funziona.
Il problema riscontrato è come ripristinare la luminosità originale all'uscita dall'applicazione mentre si preme il pulsante Home.
ho aggiunto codice simile agli applicativi metodi delegato Per:
applicationWillResignActive(...)
applicationDidEnterBackground(...)
applicationWillTerminate(...)
Ognuno di essi ha una chiamata di metodo per impostare la luminosità dello schermo come prima nella vista analoga con NSLog (...) s mostra la ha recuperato la luminosità originale ... ed è tutto corretto. Ho anche eseguito il debug in e le chiamate per impostare la luminosità sono state fatte ... ma l'app si chiude e lo schermo del dispositivo è ancora al livello più basso e oscurato.
Infine, se si fa clic sul pulsante "blocco" in alto, quindi premere il pulsante Home per riattivarlo ... la luminosità è corretta.
Il mio sospetto è che qualsiasi azione o evento venga attivato con la mia chiamata per impostare la luminosità quando l'app non sta uscendo, forse a causa di uno stato non valido o simile.
Inoltre, la mia app è impostato per non funzionare in background, ambientato nel info.plist come:
Application does not run in background YES
Qualsiasi aiuto sarebbe apprezzato.
Grazie!
Queste API private sono? Non vedo le proprietà mainWindow o mainWindows (typo?) Nella classe UIScreen. Intendi schermo principale? – picciano
Sì, errore di battitura da parte mia. I is is '[UIScreen mainScreen] .brightness = val;' oppure [[UIScreen mainScreen] setBrightness: val]; ' – Cal30
Sono abbastanza sicuro che non ci sia modo di rendere persistente questa impostazione al di fuori della tua app. La documentazione di Apple non lo dice esplicitamente, ma ho visto altre due app che cambiano la luminosità, in questo caso. Qualcuno [qui] (http: // StackOverflow.it/a/7901339/76810) concorda. – SSteve