MAC OS X具有每个应用程序的设置,您可以针对特定应用程序打开“请勿打扰”模式:https://www.reddit.com/r/apple/comments/2r0bji/do_not_disturb_mode_in_os_x_when_using_a_specific/
此外......有一种方法可以检测整个系统的DND模式,具体如下:Programmatically check state of do not disturb on OS X
但是否有任何API可以让我对每个应用程序进行检查,看看它是否启用了DND?
答案 0 :(得分:5)
macOS中有 no per-app 请勿打扰。
您最接近的可能是检索enabledRemoteNotificationTypes
的{{1}}方法
这将返回一个NSApplication
值,其中包含一个位掩码,其值指示应用程序请求的推送通知类型。
可能的值是:
NSRemoteNotificationType
- 应用不应显示徽章。
NSRemoteNotificationTypeNone
- 应用应显示徽章。
NSRemoteNotificationTypeBadge
- 应用程序应播放声音。
NSRemoteNotificationTypeSound
- 应用应显示提醒。
这对当前正在运行的应用程序非常有用,您可以从Apple Developer site
获取更多信息另一个潜在的展示位置:
您可以在以下目录中找到NotificationCenter使用的SQLite数据库:
NSRemoteNotificationTypeAlert
+ getconf DARWIN_USER_DIR
,但要小心,因为我的/com.apple.notificationcenter/db
中没有,最新版本位于/db
在优胜美地之前,此文件位于/db2
我还没有通过这个数据库,所以我无法告诉你这里是否有适用的设置,但它是一个开始寻找的好地方。
如果你在App Store上发布你的应用程序,你可能因为沙盒而无法使用这种方法,但无论如何都值得一试。