如何以编程方式读取mac系统偏好设置?

时间:2019-12-23 18:49:47

标签: macos electron system-preferences

我试图告诉用户是否设置了特定的系统偏好设置。即该应用需要知道他们是否具有“完全磁盘访问”权限,是否已在“辅助功能”下选择了我们的应用,等等,如下图所示。

我知道我们可以做类似的事情

defaults read com.apple.AppleMultitouchTrackpad

但是我很难在“安全性和隐私”下找到有关“全盘访问”,“文件和文件夹”以及“可访问性”的信息。

某处有com.apple.XXX的列表吗?

我基本上是在尝试做类似的事情

defaults read com.apple.security.Privacy_Accessibility

我可以使用类似电子的方式打开系统偏好设置窗格

shell.openExternal('x-apple.systempreferences:com.apple.preference.security.Privacy_Accessibility')

因此,我认为可能会有与此类似的方式来读取设置。

enter image description here

1 个答案:

答案 0 :(得分:2)

要确定是否启用了辅助功能访问,可以使用AXIsProcessTrusted及其对应的AXIsProcessTrustedWithOptions。两者都是ApplicationServices的一部分。来自documentation

  

如果当前进程是受信任的可访问性客户端,则返回TRUE,否则返回FALSE。

似乎无法检测FDA是否启用;没有API。一些开发人员尝试通过尝试读取已知的受保护文件并查看其是否起作用来测试访问。但是这种方法很脆弱,Apple确实不建议这样做。 here有更多讨论。