gpt4 book ai didi

ios - 如何在 macOS/iOS 上观察 Night Shift 的变化?

转载 作者:可可西里 更新时间:2023-11-01 03:53:17 25 4
gpt4 key购买 nike

我正在寻找一种方法来确定何时启用或禁用 Night Shift,并据此执行操作。我目前在 CoreBrightness 框架中使用 CBBlueLightClient header 来控制 Night Shift。这是我在我的应用程序中使用的部分 header :

@interface CBBlueLightClient : NSObject
- (BOOL)setStrength:(float)strength commit:(BOOL)commit;
- (BOOL)setEnabled:(BOOL)enabled;
- (BOOL)getStrength:(float*)strength;
- (BOOL)getBlueLightStatus:(struct { BOOL x1; BOOL x2; BOOL x3; int x4; struct { struct { int x_1_2_1; int x_1_2_2; } x_5_1_1; struct {
int x_2_2_1; int x_2_2_2; } x_5_1_2; } x5; unsigned long x6; }*)arg1;
@end

CBBlueLightClient 还有一个通知 block ,-
(void)setStatusNotificationBlock:(id/* block */)arg1;
我不知道如何使用。

Here's the full header for iOS.我尝试过的所有内容都适用于 macOS,包括似乎存在的通知 block 。我只是不知道它期望什么样的关闭。

最佳答案

您可以只创建一个 void 通知 block ,它会在启用/禁用夜类以及更改夜类设置时触发。在通知 block 中,您可以查询夜类是启用还是禁用。

CBBlueLightClient *client = [[CBBlueLightClient alloc] init];

void (^notificationBlock)() = ^() {
StatusData status;
[client getBlueLightStatus:&status];
//... check status.enabled, status.active, etc);
};

[client setStatusNotificationBlock:notificationBlock];

似乎强度变化不会触发通知。如果需要,您可以投票吗?这实际上取决于您的用例。

如果您只想知道它何时被切换,请按上述方式订阅通知并检查 .enabled 属性。

我正在使用的 header :

@interface CBBlueLightClient : NSObject

typedef struct {
int hour;
int minute;
} Time;

typedef struct {
Time fromTime;
Time toTime;
} Schedule;

typedef struct {
BOOL active;
BOOL enabled;
BOOL sunSchedulePermitted;
int mode;
Schedule schedule;
unsigned long long disableFlags;
} StatusData;

- (void)setStatusNotificationBlock:(id /* block */)arg1;
- (BOOL)getBlueLightStatus:(StatusData *)arg1;

@end

关于ios - 如何在 macOS/iOS 上观察 Night Shift 的变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45525080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com