2009-11-23 3 views
1

최근에 내 앱에서 작업 중이었고 백라이트의 밝기를 변경하고 싶었습니다. 그런 다음 앱을 종료 할 때의 원래 설정으로 백라이트 수준을 복원하려고했습니다. 여기 코드는 다음과 같습니다이전 레벨로 백라이트 복원, iPhone

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

백라이트 변경 올바르게 응용 프로그램을로드에, 아직 사용자 종료가, 백라이트가 응용 프로그램에 의해 설정된 수준에서 유지 될 때 ... 얼마나 불편!

내가 예상 한대로 작동하지 않는 이유에 대해 도움이 될 수 있습니까? 분명히 잘못된 것이 있습니까?

이 문제와 관련하여 웹에서 많은 정보를 찾을 수 없습니다.

ViewController.h도

#import "GraphicsServices.h" 

이 필요합니다. 상관없이 앱이 실행되기 이전에 있었는지,

응용 프로그램은 폐쇄 백라이트 레벨이 변화를 않지만, 항상 0 :

편집 // 사람이이 문제를 도울 수 있습니다. 아마도 bl은 어떤 이유로 든 항상 0입니까?

많은 감사,

스투

+0

이 질문에 답변하기 위해 추가 정보가 필요하고 제공하지 않은 경우 간단히 의견을 말하고 질문을 편집합니다. – Stumf

답변

1

는 답을 발견했다. 정말 근본적인 오류 였어. 바보 같은 실수 야. 나는했다 :

- (void)applicationWillTerminate 

이 ViewController.m보다는 AppDelegate.m

지금의 완벽하게 작동합니다.

나는 앱이 흥미로운 아이디어에서

스투

1

밝기를 설정 제어하려면이 비슷한 문제를 거기에 사람을 도움이되기를 바랍니다. 그러나이 문자열을 사용하면 거부 할 수 있습니다. (link을 참조하십시오.)

음 ... 사용자가 종료 한 후에 레벨을 복원하는 방법을 모르겠습니다. 따라서 두 가지 API를 소개하겠습니다. 그들은

CFPreferencesSetAppValue()

문제를 해결하는 경우 CFPreferencesAppSynchronize()가, 다른 개발자를위한 올바른 코드를 적어주십시오는 Mac OS X의 방법입니다, 저를 포함한다. ;-)

+0

최근 게시물에 대해 잘 모르는 것이 유감입니다. – KatokichiSoft

+0

위와 같은 방법을 사용하는 경우 GraphicsServices 프레임 워크와 헤더를 프로젝트에 추가해야합니다. 나는 이것을 보여주기 위해 나의 질문을 바꿀 것이다. – Stumf