GSEventSetBacklightLevel(BrightnessSlider.value);
[[UIApplication sharedApplication] setBacklightLevel:BrightnessSlider.value];
iOS UIScreen具有亮度属性。将其设置为不同的值会更新屏幕亮度。但锁定/解锁后屏幕亮度恢复到iOS设置中设置的任何亮度。
我必须拨打电话才能保存设置吗?是否有同步通话?
这是一个越狱开发,没有“沙盒”。
答案 0 :(得分:1)
UIApplication
setBacklightLevel:
来电确实是暂时的。
但是,如果您查看在SBSettings中切换(更改)亮度级别的代码,那么这是一个永久设置。我仍然认为亮度的任何变化也会受到用户是否具有设置 - >的影响。亮度 - >自动亮度功能已开启。 自动亮度会动态调整屏幕亮度。
看看at this page。滚动到底部see this link。
如您所见,通过将新亮度级别写入 com.apple.springboard.plist 文件来实现永久亮度变化:
NSMutableDictionary* Prefs = [NSMutableDictionary dictionaryWithContentsOfFile:@"/var/mobile/Library/Preferences/com.apple.springboard.plist"];
if(Prefs != nil)
{
NSLog(@"Prefs != nil\n");
float CurrentBacklight1 = [[Prefs objectForKey:@"SBBacklightLevel"] floatValue];
float CurrentBacklight2 = [[Prefs objectForKey:@"SBBacklightLevel2"] floatValue];
NSNumber* Number = [NSNumber numberWithFloat:CurrentBacklight];
if(CurrentBacklight2 > 0)
{
NSLog(@"CurrentBacklight2 = %f\n", CurrentBacklight2);
[Prefs setObject:Number forKey:@"SBBacklightLevel2"];
}
if(CurrentBacklight1 > 0)
{
NSLog(@"CurrentBacklight1 = %f\n", CurrentBacklight1);
[Prefs setObject:Number forKey:@"SBBacklightLevel"];
}
[Prefs writeToFile:@"/var/mobile/Library/Preferences/com.apple.springboard.plist" atomically:YES];
}
其中包含您看到SpringBoard 还原的值。然后,更改也会暂时应用您正在使用的代码:
[[UIApplication sharedApplication] setBacklightLevel:BrightnessSlider.value];
这两项更改的组合可以为您提供所需的内容。
答案 1 :(得分:0)
Class $SBBrightnessController = objc_getClass("SBBrightnessController");
[[$SBBrightnessController sharedBrightnessController] _setBrightnessLevel:BrightnessSlider.value showHUD:YES];
objective-c运行时的乐趣:)