首页 > 解决方案 > Objective-C 更换电池和电源适配器系统偏好(旧的节能器偏好)

问题描述

我正在使用CFPreferencesSetValueand 和CFPreferencesSynchronize。我可以看到变化反映在中,com.apple.powermanagement.plist 但是当我使用pmset检查当前使用的数字时,它们不是首选项 plist 中设置的。我已经失去了理智,因为我已经为此工作了几个星期(断断续续)试图解决它。任何人都可以提供关于我应该做什么的线索吗?

NSString *PMEyeIOCFPrefsPath = @"com.apple.PowerManagement";
NSString *PMEIOSystemPowerSettingsKey = @"AC Power"; // Battery Power

CFPreferencesSetValue(CFBridgingRetain(PMEIOSystemPowerSettingsKey), (__bridge CFPropertyListRef _Nullable)(self.acParams), CFBridgingRetain(PMEyeIOCFPrefsPath), kCFPreferencesAnyUser, kCFPreferencesCurrentHost);

BOOL test = CFPreferencesSynchronize(CFBridgingRetain(PMEyeIOCFPrefsPath),
    kCFPreferencesAnyUser, kCFPreferencesCurrentHost);

请注意,我已尝试发送首选项已更改的通知,但我找不到有关该通知的接收者名称的任何文档:即:

dispatch_async(dispatch_get_main_queue(), ^{
    CFNotificationCenterPostNotification(CFNotificationCenterGetDistributedCenter(),
        (CFStringRef)@"com.apple.preference.energysaver", NULL, NULL, YES);

标签: objective-cpreferences

解决方案


推荐阅读