2009-07-27 20 views
7

Necesito que mi aplicación se ejecute sin que el iPhone vaya a dormir. Pero me gustaría apagar la pantalla. Algo similar se hace en la aplicación del teléfono, cuando habla por teléfono.Apagar la pantalla

Evito que el iPhone se quede dormido de la siguiente manera: [[UIAplicación compartida de la aplicación] setIdleTimerDisabled: YES];

Pero, ¿cómo puedo apagar la pantalla? ¿Y cómo puedo volver atrás, cuando el usuario tocó la pantalla?

Gracias.

Respuesta

5

Actualización: Este método ya no se utiliza. Vea el comentario de Timothée Boucher a continuación.


Puede apagar la pantalla a través del sensor de proximidad, pero no hay otra manera pública de poner la pantalla en modo de suspensión.

-[UIApplication setProximitySensingEnabled:(BOOL)] 
+2

Para cualquiera que lea esto, en el momento de mi comentario, el método ha quedado en desuso. De la documentación de Apple: "Obsoleto. Las propiedades' proximityMonitoringEnabled' y 'proximityState' de la clase' UIDevice' son las sustituciones ". –

0

No puedo confirmar que esa es una funcionalidad pública, pero sé que hay un sensor de proximidad que puede detectar si el teléfono está cerca de su cara o no. Intente buscar y averiguar si ese sensor está disponible públicamente, y luego qué función podría apagar la pantalla.

0

No hay manera oficial (pública) programática para activar la pantalla encendida o apagada, o incluso para cambiar el brillo de la pantalla. Algunas aplicaciones "falsifican" un cambio de brillo superimponiendo una vista negra transparente en la parte superior de la vista y cambiando su opacidad para dar la apariencia de un cambio en el brillo (la luz de fondo permanecerá encendida, sin embargo, por lo que nunca parece que la pantalla está apagada y no guardará ninguna batería).

0

ya thair es la forma en que puede utilizar la función indocumentado GSEventSetBacklightFactor (1); esto hará que la pantalla se atenúe. si reemplaza 1 con 0, su pantalla estará apagada. entonces usted tiene que presionar a casa button.for usar este u tiene que importar un marco marco graphicservice piado

+0

No se puede activar con "GSEventSetBacklightFactor (1);" en un dispositivo con 3.1.2 framework. Incluso el botón de inicio no ayuda, pero solo reinicia el dispositivo (Inicio + Dormir 10 segundos).Funciona en un simulador. El dispositivo no está fisurado – slatvick

+0

@slatvick - Quieres decir 'no jailbroken', no' uncracked'. Espero que no esté rajado. – Moshe

2

Bueno, puede activar el brillo completo. No bloquea la pantalla y el dispositivo aún se muestra, pero no hay luz de fondo de la pantalla LCD que hace que sea casi imposible de ver.

- (void) changeSystemBrightness: (NSString *) switchValue { 

if ([[UIScreen mainScreen] respondsToSelector:@selector(setBrightness:)]) { 
    if (switchValue) { 
     if ([switchValue isEqualToString:@"saveDefault"]) { 
      // 
      self.userBrightness = [UIScreen mainScreen].brightness; 
      //NSLog(@"User Brightness: %1.1f", userBrightness); 
     } else if ([switchValue isEqualToString:@"restoreDefault"]) { 
      [UIScreen mainScreen].brightness = self.userBrightness; 
      //NSLog(@"Restore Brightness: %1.1f", userBrightness); 
     } else if ([switchValue isEqualToString:@"min"]) { 
      //[UIScreen mainScreen].brightness = 0; 
     } else if ([switchValue isEqualToString:@"max"]) { 
      [UIScreen mainScreen].brightness = 1; 
     } else if ([switchValue isEqualToString:@"mid"]) { 
      [UIScreen mainScreen].brightness = 0.5; 
     } 
    } else { 
     [UIScreen mainScreen].brightness = self.userBrightness; 
     //NSLog(@"Restore Brightness: %1.1f", userBrightness); 
    } 
} 

}

primer salvamento nivel de brillo del sistema del usuario

[self changeSystemBrightness:@"saveDefault"]; 

Después de eso sólo tiene que apagar la pantalla:

[self changeSystemBrightness:@"min"]; 

restablecer el brillo:

[self changeSystemBrightness:@"restoreDefault"]; 

iOS restaura el brillo del sistema por defecto una vez que la pantalla se apaga normalmente (bloqueo/desbloqueo) así que hay que detectar y manejar eso.

Cuestiones relacionadas