删除不在通知中心的应用的停靠通知徽章


12

对于设置了徽章通知图标但不在“设置通知”中心中的讨厌的应用程序,是否可以阻止徽章图标?


例如,Spotify会为每个无关紧要的事件创建通知,而无法在应用程序中将其阻止。

就我个人而言,我不理解如何不首先位于通知中心的情况下允许应用显示徽章图标。


例:

在此处输入图片说明


如您的屏幕截图所示,应用程序对其图标进行标记很早就早于在OS X中包含Notification Center。它们不需要使用通知功能。
tubedogg 2014年


此外,这是我发现的尚未最好的解决:隐藏运行的应用程序的状态运行时(其中隐藏的徽章也): apple.stackexchange.com/questions/68915/...
y3sh

Answers:


27

我有一个可以逆向工程的解决方案。我已经在运行Yosemite 10.10.4(14E46)的计算机上对其进行了测试。如果可以找到捆绑软件ID(在应用捆绑软件的Info.plist文件中),则可以使用此脚本强制应用程序显示在通知首选项窗格中。

# "Usernoted" seems to be the "user notifications daemon", so get it's PID.
pid=$(ps aux | grep -i [u]sernoted | awk '{print $2}')

# Find the sqlite3 database that this program has open. It's in a "private" folder (app sandboxing).
db="$(lsof -p $pid | grep com.apple.notificationcenter/db/db\$ | awk '{print $9}')"

# I got the bundleid from Spotify.app/Contents/Info.plist
bundleid="com.spotify.client"

# I use 0 as the flags because you can change all the settings in System Preferences
# 5 seems to be the default for show_count
# Grab the next-highest sort order
sql="INSERT INTO app_info (bundleid, flags, show_count, sort_order) VALUES ( '$bundleid', 0, 5, (SELECT MAX(sort_order) + 1 FROM app_info) );"

# Run the command
sqlite3 "$db" "$sql"

# Restart usernoted to make the changes take effect
killall usernoted

此时,您可以打开系统偏好设置->通知,您会在列表底部找到刚添加的应用程序。您可以从此页面启用/禁用标记图标。


2
非常聪明的解决方案,谢谢瑞安!(尽管我现在通过删除Spotify并切换到Apple Music来“修复”它)
Jon Cox

1
最后,这是一个解决这个可怕问题的方法。谢谢*1000。–
乔什·哈里森

1
你是男人
Udi 2015年

1
我只想确认,此解决方案仍然有效!
23tux

1
需要更换grep com.apple.notificationcenter/db/db\$grep 'com.apple.notificationcenter/db2/db$'作为的Mac OS的10.14.1(可能之前,我看这是3岁以上的话)
亚历小号

0

对于像我这样的mac noobs人士,请创建并运行上述脚本:

1.打开TextEdit,
2.将编辑器置于“纯文本”模式-“格式”>“制作纯文本”。
(如果跳过此步骤,将不允许您将其另存为脚本。)
3.将上面的脚本粘贴到TextEdit窗口中
。4.将文件另存为脚本-File> Save As in TextEdit。输入文件名,后跟“ .sh”文件扩展名,然后将文档保存到桌面。
5.打开“终端”应用程序
。6.导航到“终端”中的桌面-输入(然后按Enter):

cd桌面
7.设置刚刚创建的文件的权限,以便可以运行它-键入Terminal(然后按en):
须藤chmod 700 file.sh
(用脚本名称替换“ file.sh”。)
8.运行文件-在Terminal中输入:
./file.sh
(再次,用脚本名称替换“ file.sh”。)
9 . 在“系统偏好设置”中打开“通知”。您应该能够找到Spotify应用并关闭通知。

创建脚本的源代码:终端101:使用Bash脚本自动化终端


1
关于制作可执行的Shell脚本的很好的教程,但是对于推荐的解决方案,您不需要bash脚本。只需打开终端并粘贴命令。跳过以#开头的行,因为这是bash中的注释。
y3sh
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.