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

Était-ce utile?

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. ; -)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top