我试图告诉用户是否设置了特定的系统偏好设置。即该应用需要知道他们是否具有“完全磁盘访问”权限,是否已在“辅助功能”下选择了我们的应用,等等,如下图所示。
我知道我们可以做类似的事情
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')
因此,我认为可能会有与此类似的方式来读取设置。
要确定是否启用了辅助功能访问,可以使用AXIsProcessTrusted
及其对应的AXIsProcessTrustedWithOptions
。两者都是ApplicationServices
的一部分。从documentation:
如果当前进程是受信任的可访问性客户端,则返回TRUE;否则,则返回FALSE。
似乎无法检测是否启用了FDA;没有API。一些开发人员尝试通过尝试读取已知的受保护文件并查看其是否起作用来测试访问。但是这种方法很脆弱,Apple确实不建议这样做。更多讨论here。