2

SDK 是否提供任何方法来改变背光的亮度,或者暂时关闭它?

4

5 回答 5

5

我正在尝试做同样的事情。碰巧的是,互联网上有许多帖子为此提供了“解决方案”。

最详细的在这里 这个比较简洁

问题是我已经尝试过这些,它们都依赖于调用这个函数

GSEventSetBacklightLevel();

这需要导入此标头

#import <GraphicsServices/GraphicsServices.h>

并且在 SDK 报告找不到头文件时导入失败。

我已经搜索了一些解决方案,但没有找到。有一些关于“构建工具链”的讨论(有关我找到的最佳描述,请参见此处),但这似乎涉及完全绕过 SDK。相当激烈。

摘要:这是可能的,但不能使用标准的 iPhone SDK。我想 SDK 的更新很快就会到来,应该允许它。

如果您找到任何其他解决方案,请告诉我。

于 2009-01-21T21:12:39.317 回答
1

不,这在 SDK 中不可用。如果它是您认为有用的东西,我建议您提交增强请求

于 2008-12-14T20:36:44.950 回答
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 项目来添加私有框架。

还要在您的 .h 文件中添加 #import "GraphicsServices.h" 标头。请记住:由于您使用的是私有框架,因此您的应用程序将在应用商店推送中拒绝

于 2011-08-04T08:08:31.923 回答
0

在我的 SDK (5.0.1) 中,“GraphicsServices.h”似乎不再存在,但您可以自己声明它:

void GSEventSetBacklightLevel(float level);

请注意,链接器会报错,除非您在项目中包含框架 GraphicsServices.framework。

关于您关于关闭背光的问题,我发现您可以通过将一个非常大的负数传递给 GSEventSetBacklightLevel 来做到这一点,如下所示:

GSEventSetBacklightLevel(-INFINITY);

在我的测试中,这将使屏幕完全变黑。

请记住,如果您显示静态图形,即使背光关闭,这仍可能导致 LCD 像素老化。如果提交到应用商店,此调用将导致拒绝。

于 2012-03-07T13:37:08.453 回答
0

试试这个代码。我希望它有帮助...

//在视图中将出现

float prevBrightnessLevel = [UIScreen mainScreen].brightness;

[UIScreen mainScreen].brightness = 1.0;

//在视图中将消失

[UIScreen mainScreen].brightness = prevBrightnessLevel;

于 2013-01-30T16:31:41.710 回答