我想要的iOS代码,可以显示屏幕是否亮,以便我的应用程序可以监测电池耗电量,因为(缺电)背光活动。这段代码必须只使用公共API,因为我打算最终将应用程序提交到app。
最初,我认为这可能只是检查UIScreen的UIScreen属性的问题,如下所示:
-(BOOL)isBackLightOn {
float brightness = [UIScreen mainScreen].brightness;
return brightness > 0;
}
但这是不正确的,因为[UIScreen mainScreen].brightness
表示用户在设置->亮度屏幕中选择的滑块的值,不表示屏幕当前的光输出。
苹果显然有办法确定这一价值,因为它包含在能源诊断中,可以在仪器中看到(例如,见记录iOS设备中的能量使用情况),但也许这种测量没有通过公共API公开?
发布于 2012-08-06 18:19:51
有一个问题可能对你有帮助,那就是:
看来,如果你把这包括在内:
#include "GraphicsServices.h"
然后用这样的方法:
NSNumber *bl = (NSNumber*) CFPreferencesCopyAppValue(CFSTR("SBBacklightLevel" ), CFSTR("com.apple.springboard"));
float previousBacklightLevel = [bl floatValue];
应该给你背光水平。记住,屏幕总是会有某种形式的背光。
发布于 2013-01-04 07:14:45
首先,我尝试了@Flipper的回答,但这对我没有多大帮助,然后我在这方面进行了研发,并找到了下面代码的解决方案。
NSLog(@"%f", [[[NSMutableDictionary dictionaryWithContentsOfFile:@"/var/mobile/Library/Preferences/com.apple.springboard.plist"] objectForKey:@"SBBacklightLevel2"] floatValue]);
它给了我浮点值,设备的当前亮度
https://stackoverflow.com/questions/11833557
复制相似问题