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.
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 ". –