将背光恢复到以前的水平,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框架和标题添加到您的项目中。我将改变我的问题来说明这一点。