Pergunta

Eu estava trabalhando no meu aplicativo recentemente e queria mudar o brilho da luz de fundo. Eu então queria restaurar o nível de luz de fundo para sua configuração original para sair do aplicativo. Aqui está o código:

#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
}

A luz de fundo muda corretamente para carregar o aplicativo, mas quando o usuário sai, a luz de fundo permanece no nível definido pelo aplicativo ... que inconveniente!

Alguém pode me ajudar por que isso não está funcionando como o esperado, estou fazendo algo obviamente errado?

Não consegui encontrar muitas informações na web sobre esse problema.

ViewController.h Requer

#import "GraphicsServices.h"

também.

Editar // Alguém pode ajudar com este problema:

Quando o App é o nível de backlight fechado muda, mas sempre para 0, não importa o que fosse antes da execução do aplicativo. Possivelmente o BL é sempre 0 por algum motivo?

Muito Obrigado,

Stu

Foi útil?

Solução

Descobriu a resposta. Foi um erro realmente básico ... erro bobo. Eu tive:

- (void)applicationWillTerminate

em ViewController.m em vez de appdelegate.m

Agora funciona perfeitamente.

Espero que isso ajude alguém por aí com um problema semelhante,

Stu

Outras dicas

Controlar o brilho dentro do aplicativo é uma idéia interessante. No entanto, o uso dessa string será uma causa de rejeição. (Veja o link.)

Bem, ... eu não sei como restaurar o nível após a saída do usuário. Portanto, deixe -me apresentar duas APIs a você. Eles são o caminho no Mac OS X.

CFPreferencesSetAppValue() e CFPreferencesAppSynchronize()

Se você resolver o problema, anote o código correto para os outros desenvolvedores, inclua -me. ;-)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top