Pregunta

¿El SDK proporciona ninguna manera de cambiar el brillo de la luz de fondo, o desactivarla temporalmente?

¿Fue útil?

Solución

No. Esto no está disponible en el SDK. Si se trata de algo que cree que sería útil, le sugiero que presentar una solicitud de mejora .

Otros consejos

Estoy tratando de hacer lo mismo. Da la casualidad de que hay un número de mensajes que hay en la Internets con "soluciones" para ello.

El más detallada es aquí Este es más sucinta

El problema es que he intentado estos y todos ellos se basan en llamar a esta función

GSEventSetBacklightLevel();

que requiere esta cabecera a importar

#import <GraphicsServices/GraphicsServices.h>

Y eso importación falla en el SDK de informes que el archivo de cabecera no se puede encontrar.

He buscado alguna solución, pero no lo he encontrado. Hay algunos hablan de "la construcción de la cadena de herramientas" (para la mejor descripción que he encontrado ver aquí ) pero que parece involucrar a pasar por el SDK completo. Bastante drástica.

Resumen: Es posible, pero no con el iPhone SDK estándar. Imagino una actualización para el SDK vendrá pronto que debería permitir por ello.

Quiero saber si usted encuentra cualquier otra solución.

-(void)changeLight{

    GSEventSetBacklightLevel(float number);//number between 0.0 - 1.0
}

llamar al método anterior utilizando

[self performSelector:@selector(changeLight) withObject:nil afterDelay:0.0];

puede agregar el marco privado con sólo arrastrarlo a su proyecto Xcode desde /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/System/Library/PrivateFrameworks/GraphicsServices.framework.

También añadir import "GraphicsServices.h" de cabecera en su archivo .h .. Recuerde: dado que está utilizando marco privada que rechazará la aplicación en la tienda de aplicaciones de empuje

En mi SDK (5.0.1), parece que "GraphicsServices.h" ya no está allí, pero se puede declarar por sí mismo de esta manera:

void GSEventSetBacklightLevel(float level);

Tenga en cuenta que el enlazador se quejará, a menos que incluya la GraphicsServices.framework marco de su proyecto.

Sobre tu pregunta sobre apagar la retroiluminación, descubrí que lo puede hacer pasando un gran número negativo para GSEventSetBacklightLevel, como esto:

GSEventSetBacklightLevel(-INFINITY);

En las pruebas que esto será completamente negro la pantalla.

Recuerde que esto todavía podría causar quemado de los píxeles en la pantalla LCD si muestra gráficos estáticos, incluso cuando la luz de fondo está apagada. Y que esta llamada causará rechazo si submitteed a la tienda de aplicaciones.

probar este código. Espero que ayude ...

  

// en viewWillAppear

     

flotar prevBrightnessLevel = [UIScreen mainScreen] .brightness;

     

[UIScreen mainScreen] .brightness = 1,0;

     

// en viewWillDisappear

     

[UIScreen mainScreen] .brightness =   prevBrightnessLevel;

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top