可可:有没有办法知道用户是否设置了"设置日期&时间自动"在系统偏好?

时间:2015-04-21 18:13:26

标签: objective-c macos cocoa

我想知道Cocoa应用程序是否有办法知道用户是否在其“系统偏好设置”中设置了“自动设置日期和时间”。如果是这样,我也想知道最后一次更新时间。 非常感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用STPrivilegedTask(或类似)运行具有root权限的任务,然后解析结果。 Hack-y /不是最好的,但它应该有用。

编辑:

- (BOOL)networkTimeEnabled {
    STPrivilegedTask *task = [[STPrivilegedTask alloc] initWithLaunchPath:@"/usr/bin/sudo" arguments:@[@"/usr/sbin/systemsetup",@"-getusingnetworktime"]];
    if ([task launch] == noErr) {
        NSData *data = [task.outputFileHandle readDataToEndOfFile];
        [task waitUntilExit];

        NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

        NSString *status = [result componentsSeparatedByCharactersInSet:NSCharacterSet.whitespaceAndNewlineCharacterSet][2];
        return ([status isEqualToString:@"On"]);
    }
    return NO;
}