SDK是否提供了改变背光亮度或暂时关闭背光的方法?
答案 0 :(得分:5)
我正在尝试做同样的事情。 事实上,互联网上有一些帖子,其中有“解决方案”。
问题在于我尝试了这些并且他们都依赖于调用此函数
GSEventSetBacklightLevel();
需要导入此标头
#import <GraphicsServices/GraphicsServices.h>
导致该导入在SDK报告中无法找到头文件。
我已经搜索了一些解决方案,但还没找到。 有一些关于“构建工具链”的讨论(为了最好的描述我发现here),但这似乎涉及完全绕过SDK。相当激烈。
总结:这是可能的,但不适用于标准的iPhone SDK。我想很快就会对SDK进行更新。
如果您找到任何其他解决方案,请告诉我。
答案 1 :(得分:1)
没有。这在SDK中不可用。如果你认为这是有用的,我建议你file an enhancement request。
答案 2 :(得分:0)
-(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项目来添加私有框架。 p>
在你的.h文件中添加#import“GraphicsServices.h”标题.. 记住:因为你使用私有框架,你的应用程序会在app store push中拒绝
答案 3 :(得分:0)
在我的SDK(5.0.1)中,似乎“GraphicsServices.h”不再存在,但您可以像这样自己声明:
void GSEventSetBacklightLevel(float level);
请注意,除非您在项目中包含框架GraphicsServices.framework,否则链接器会抱怨。
关于关闭背光的问题,我发现你可以通过将一个非常大的负数传递给GSEventSetBacklightLevel来实现,如下所示:
GSEventSetBacklightLevel(-INFINITY);
在我的测试中,这将完全遮挡屏幕。
请记住,如果显示静态图形,即使背光关闭,这仍可能导致LCD像素老化。如果提交给app store,这个电话会导致拒绝。
答案 4 :(得分:0)
试试这段代码。我希望它有所帮助...
//在viewWillAppear
中float prevBrightnessLevel = [UIScreen mainScreen] .brightness;
[UIScreen mainScreen] .brightness = 1.0;
//在viewWillDisappear
中[UIScreen mainScreen] .brightness = prevBrightnessLevel;