Mam funkcję w mojej aplikacji (aplikacja metronomu dla muzyków), aby przyciemnić ekran, aby zaoszczędzić na żywotności baterii. Aby ustawić jasność, używam:Nie można przywrócić jasności przy wyjściu z aplikacji
[UIScreen mainScreen].brightness = 0.1;
jestem zapisywania oryginalną jasność na uruchomienie aplikacji w viewDidLoad (...) i że do zapisywania moich ustawień domyślnych użytkownika.
Przy wymianie poglądów w ramach aplikacji, odzyskać pierwotną jasność z niewykonania użytkownika i przywrócić z rozmowy:
[UIScreen mainScreen].brightness = originalBrightness;
To działa prawidłowo. Mam komunikaty NSLog (...) pokazujące oryginalną wartość, itd. ... więc mechanizm działa.
Problem, który mam, polega na przywróceniu pierwotnej jasności po zamknięciu aplikacji po naciśnięciu przycisku Początek.
Dodałem podobny kod do moich metod delegata aplikacji dla:
applicationWillResignActive(...)
applicationDidEnterBackground(...)
applicationWillTerminate(...)
każdy Mają wywołanie metody, aby ustawić jasność ekranu, jak poprzednio w widoku z podobnym NSLog (...) s przedstawiający odzyskana oryginalna jasność ... i wszystko jest w porządku. Włączyłem także debugowanie i nawiązywane są połączenia, aby ustawić jasność ... ale aplikacja wychodzi, a ekran urządzenia wciąż znajduje się na niższym, przyciemnionym poziomie.
Na koniec, jeśli klikniesz przycisk "Zablokuj" u góry, a następnie naciśnij przycisk Strona główna, aby go obudzić ... jasność jest prawidłowa.
Podejrzewam, że jakiekolwiek działanie lub zdarzenie jest wywoływane przez moje wezwanie do ustawienia jasności, gdy aplikacja się kończy, nie przechodzi przez, być może z powodu nieprawidłowego stanu lub podobnego.
Również moja aplikacja jest ustawiony na NIE działają w tle, ustawić w Info.plist jak:
Application does not run in background YES
Każda pomoc będzie mile widziane.
Dzięki!
Czy są to prywatne API? Nie widzę właściwości mainWindow lub mainWindows (literówka?) W klasie UIScreen. Masz na myśli mainScreen? – picciano
Tak, literówka z mojej strony. Ja jest "[Główny ekran Wi-Fi] .brightness = val; ' lub [[UIScreen mainScreen] setBrightness: val]; ' – Cal30
Jestem prawie pewien, że nie da się utrzymać trwałości tego ustawienia poza aplikacją. Dokumentacja Apple nie mówi tego wyraźnie, ale widziałem dwie inne aplikacje zmieniające jasność, w tym przypadku. Ktoś [tutaj] (http: // stackoverflow.com/a/7901339/76810) zgadzają się. – SSteve