Rétro-éclairage de restauration au niveau précédent, iPhone
-
21-09-2019 - |
Question
Je travaillais sur mon application récemment et je voulais changer la luminosité du rétro-éclairage. Je voulais alors rétablir le niveau de rétroéclairage à son réglage d'origine à la sortie de l'application. Voici le code:
#include "GraphicsServices.h"
- (void) viewWillAppear:(BOOL)animated
{
NSNumber* bl = (NSNumber*) CFPreferencesCopyAppValue(CFSTR("SBBacklightLevel"), CFSTR("com.apple.springboard")); // To retrieve backlight settings
prevBacklightLevel = [bl floatValue];
GSEventSetBacklightLevel(0.5f);
}
// Other code here...
- (void)applicationWillTerminate
{
GSEventSetBacklightLevel(prevBacklightLevel); // To restore to original level
}
Les changements de rétro-éclairage correctement sur le chargement de l'application, mais lorsque l'utilisateur quitte, le rétro-éclairage reste au niveau fixé par l'application ... Comment pratique!
Quelqu'un peut-il me aider à pourquoi cela ne fonctionne pas comme prévu, je suis en train de faire quoi que ce soit évidemment faux?
Je ne pouvais pas trouver beaucoup d'informations sur le web en ce qui concerne cette question.
ViewController.h nécessite
#import "GraphicsServices.h"
également.
Modifier // Quelqu'un peut-il aider à ce problème:
Lorsque l'application est le niveau de rétro-éclairage fermé ne change, mais toujours à 0, peu importe ce qu'il était avant l'application a été exécutée. Peut-bl est toujours 0 pour une raison quelconque?
Merci,
Stu
La solution
Découvert la réponse. Ce fut une erreur vraiment basique ... erreur stupide. J'ai eu:
- (void)applicationWillTerminate
ViewController.m plutôt que AppDelegate.m
Il fonctionne maintenant parfaitement.
J'espère que cela aide quelqu'un là-bas avec un problème similaire,
Stu
Autres conseils
Pour CONTROLL la luminosité dans l'application est une idée intéressante. Cependant, en utilisant cette chaîne sera une cause de rejet. (Voir la .)
Eh bien ... Je ne sais pas comment restaurer le niveau après la sortie de l'utilisateur. Par conséquent, permettez-moi de vous présenter deux API. Ils sont comme sous Mac OS X.
CFPreferencesSetAppValue()
et CFPreferencesAppSynchronize()
Si vous résoudre le problème, s'il vous plaît notez le code correct pour les autres développeurs, me inclure. ; -)