Eh bien, vous pouvez désactiver complètement la luminosité. Il ne verrouille pas l'écran et l'appareil affiche toujours, mais aucun rétroéclairage LCD ne le rend presque impossible à voir.
- (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);
}
}
}
d'abord sauvegarder le niveau de luminosité du système de l'utilisateur
[self changeSystemBrightness:@"saveDefault"];
Après cela, vous pouvez simplement désactiver l'écran:
[self changeSystemBrightness:@"min"];
Restaurer la luminosité:
[self changeSystemBrightness:@"restoreDefault"];
iOS restaure la luminosité du système par défaut une fois que l'écran est éteint normalement (verrouillage/déverrouillage), vous devez donc le détecter et le gérer.
Pour quiconque lisant ceci, au moment de mon commentaire, la méthode a été dépréciée. De la documentation d'Apple: "Déconseillé: les propriétés' proximityMonitoringEnabled' et 'proximityState' de la classe' UIDevice' sont les remplacements. " –