Tengo una función en mi aplicación (una aplicación de metrónomo para músicos) para atenuar la pantalla a fin de ahorrar batería. Para ajustar el brillo, estoy usando:No se puede restaurar el brillo en la salida de la aplicación
[UIScreen mainScreen].brightness = 0.1;
Estoy ahorrando el brillo original en la aplicación puesta en marcha en viewDidLoad (...) y el ahorro que a mis predeterminadas del usuario.
Al cambiar puntos de vista dentro de la aplicación, puedo recuperar el brillo original a partir de la configuración de usuario y restablecer los datos con una llamada:
[UIScreen mainScreen].brightness = originalBrightness;
Esto funciona bien. Tengo mensajes NSLog (...) que muestran el valor original, etc ... para que el mecanismo funcione.
El problema que estoy teniendo es cómo restaurar el brillo original en la salida de la aplicación cuando se presiona el botón de inicio.
he añadido un código similar a mis métodos de delegado de aplicación para:
applicationWillResignActive(...)
applicationDidEnterBackground(...)
applicationWillTerminate(...)
Cada uno tiene una llamada a un método para establecer el brillo de la pantalla como antes en la vista con NSLog similar (...) s que muestra el recuperó el brillo original ... y todo está correcto. También he depurado y las llamadas para establecer el brillo se están realizando ... pero la aplicación se cierra y la pantalla del dispositivo se encuentra todavía en el nivel inferior, atenuado.
Por último, si hace clic en el botón "bloquear" en la parte superior, presione el botón de inicio para activarlo ... el brillo es correcto.
Mi sospecha es que cualquier acción o evento que se desencadene con mi llamada para establecer el brillo cuando la aplicación se está saliendo no se está procesando, tal vez debido a un estado no válido o similar.
Además, mi aplicación está configurado para no ejecutar en segundo plano, situado en el info.plist como:
Application does not run in background YES
Cualquier ayuda sería muy apreciada.
Gracias!
¿Son estas API privadas? No veo las propiedades mainWindow ni mainWindows (typo?) En la clase UIScreen. ¿Te refieres a mainScreen? – picciano
Sí, error tipográfico de mi parte. I is is '[UIScreen mainScreen] .brightness = val;' o [[UIScreen mainScreen] setBrightness: val]; ' – Cal30
Estoy bastante seguro de que no hay forma de que esta configuración sea persistente fuera de tu aplicación. La documentación de Apple no dice específicamente esto, pero he visto otras dos aplicaciones que cambian el brillo en este caso. Alguien [aquí] (http: // stackoverflow.com/a/7901339/76810) está de acuerdo. – SSteve