将背光恢复到以前的水平,iPhone

将背光恢复到以前的水平,iPhone,iphone,objective-c,plist,restore,backlight,Iphone,Objective C,Plist,Restore,Backlight,我最近正在开发我的应用程序,想改变背光的亮度。然后我想在退出应用程序时将背光级别恢复到原来的设置。代码如下: #include "GraphicsServices.h" - (void) viewWillAppear:(BOOL)animated { NSNumber* bl = (NSNumber*) CFPreferencesCopyAppValue(CFSTR("SBBacklightLevel"), CFSTR("com.apple.springboard")); // To

我最近正在开发我的应用程序,想改变背光的亮度。然后我想在退出应用程序时将背光级别恢复到原来的设置。代码如下:

#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

非常感谢,


斯图发现了答案。这是一个非常基本的错误。。。愚蠢的错误。我有:

- (void)applicationWillTerminate
在ViewController.m而不是AppDelegate.m中

现在它工作得很好

我希望这能帮助那些有类似问题的人


Stu控制应用程序内的亮度是一个有趣的想法。但是,使用此字符串将导致拒绝。(见附件。)

嗯。。。我不知道在用户退出后如何恢复级别。因此,让我向您介绍两个API。它们是Mac OS X上的一种方式

CFPreferencesSetAppValue()
CFPreferencesAppSynchronize()


如果您解决了这个问题,请为其他开发人员(包括我)写下正确的代码。;-)

如果您需要其他信息来回答这个问题,而我没有提供,只需发表评论,我将编辑我的问题。很抱歉,我不知道您的最新帖子。如果您使用与我上面相同的方法,您需要将GraphicsServices框架和标题添加到您的项目中。我将改变我的问题来说明这一点。