Nat*_*ate 6 macos iphone-privateapi ios night-shift
我正在寻找一种方法来确定何时启用或禁用夜班,并基于此执行操作.我目前正在使用CoreBrightness框架中的CBBlueLightClient标头来控制夜班.这是我在我的应用中使用的部分标题:
@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
Run Code Online (Sandbox Code Playgroud)
CBBlueLightClient也有一个通知块,-
(void)setStatusNotificationBlock:(id /* block */)arg1;我无法弄清楚如何使用.
这是iOS的完整标题.我尝试过的所有内容都适用于macOS,包括似乎存在的通知块.我只是无法弄清楚它期待什么样的闭合.
您可以创建一个void通知块,它将在启用/禁用夜班和更改夜班设置时触发.在通知块内,您可以查询是启用还是禁用夜班.
CBBlueLightClient *client = [[CBBlueLightClient alloc] init];
void (^notificationBlock)() = ^() {
StatusData status;
[client getBlueLightStatus:&status];
//... check status.enabled, status.active, etc);
};
[client setStatusNotificationBlock:notificationBlock];
Run Code Online (Sandbox Code Playgroud)
似乎力量的变化不会发出通知.如果需要,你可以进行民意调查吗?这取决于你的用例.
如果您只是想知道何时切换,请按上述订阅通知并检查.enabled属性.
我正在使用的标题:
@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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
681 次 |
| 最近记录: |