【发布时间】:2010-09-26 21:12:22
【问题描述】:
SDK 是否提供任何方式来改变背光的亮度,或者暂时关闭它?
【问题讨论】:
-
这看起来很有帮助。我至少会出于研究目的尝试一下。
SDK 是否提供任何方式来改变背光的亮度,或者暂时关闭它?
【问题讨论】:
我正在尝试做同样的事情。 碰巧的是,互联网上有许多帖子为此提供了“解决方案”。
问题是我已经尝试过这些,它们都依赖于调用这个函数
GSEventSetBacklightLevel();
需要导入此标头
#import <GraphicsServices/GraphicsServices.h>
并且在 SDK 报告找不到头文件时导入失败。
我已经搜索了一些解决方案,但没有找到。 有一些关于“构建工具链”的讨论(有关我找到的最佳描述,请参见 here),但这似乎涉及完全绕过 SDK。相当激烈。
总结:这是可能的,但不能使用标准的 iPhone SDK。我想 SDK 的更新很快就会到来,应该允许它。
如果您找到任何其他解决方案,请告诉我。
【讨论】:
没有。这在 SDK 中不可用。如果你觉得有用的话,我建议你file an enhancement request。
【讨论】:
-(void)changeLight{
GSEventSetBacklightLevel(float number);//number between 0.0 - 1.0
}
使用
调用上述方法[self performSelector:@selector(changeLight) withObject:nil afterDelay:0.0];
您可以通过从 /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/System/Library/PrivateFrameworks/GraphicsServices.framework 拖放到您的 xcode 项目来添加私有框架。
还要在您的 .h 文件中添加 #import "GraphicsServices.h" 标头。请记住:由于您使用的是私有框架,您的应用程序将在应用商店推送中拒绝
【讨论】:
在我的 SDK (5.0.1) 中,“GraphicsServices.h”似乎不再存在,但您可以自己声明它:
void GSEventSetBacklightLevel(float level);
请注意,链接器会报错,除非您在项目中包含框架 GraphicsServices.framework。
关于你关于关闭背光的问题,我发现你可以通过将一个非常大的负数传递给 GSEventSetBacklightLevel 来做到这一点,如下所示:
GSEventSetBacklightLevel(-INFINITY);
在我的测试中,这将使屏幕完全变黑。
请记住,如果您显示静态图形,即使在背光关闭的情况下,这仍可能导致 LCD 像素老化。并且这个调用如果提交到应用商店会导致拒绝。
【讨论】:
试试这个代码。希望对你有帮助...
//在视图中会出现
float prevBrightnessLevel = [UIScreen mainScreen].brightness;
[UIScreen mainScreen].brightness = 1.0;
//在视图中将消失
[UIScreen mainScreen].brightness = prev亮度等级;
【讨论】: