IODisplayConnect在Apple Silicon的Big Sur中已经被删除,那么它的替代品是什么?

8

我有两台Big Sur笔记本电脑,一台是Intel处理器,另一台是M1(MacBook Pro M1)。当我运行命令"ioreg | grep -i iodisplayconnect"时,Intel处理器上仍然有这个命令,但是M1系统没有找到任何内容。有人知道M1 Big Sur中的替代品吗?我需要它来检测显示器名称。

2个回答

3

我曾经有同样的问题,但我是为了读取显示屏亮度而寻找IODisplayConnect。

在运行Big Sur的M1 Mac上,最简单的获取亮度信息方法是运行corebrightnessdiag命令:

$ /usr/libexec/corebrightnessdiag status-info | grep 'DisplayServicesBrightness '
                DisplayServicesBrightness = "0.9302966";

为了从代码中获取和设置亮度,您可以使用DisplayServices框架(/System/Library/PrivateFrameworks/DisplayServices.framework)中的私有API:
extern int DisplayServicesGetBrightness(int display, float *brightness);
extern int DisplayServicesSetBrightness(int display, float brightness);

// Change brightness
float brightness = 0.8;
int err = DisplayServicesSetBrightness(1, brightness);

// Get current brightness
err = DisplayServicesGetBrightness(1, &brightness);

有没有办法在Swift中使用DisplayServices? - AlexPera

0

看起来 NSScreen 是答案,虽然无法获取其他信息,但并不完美。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接