Hapus lencana pemberitahuan dok untuk aplikasi yang tidak ada di pusat notifikasi


12

Untuk aplikasi gangguan yang menetapkan ikon pemberitahuan lencana, tetapi yang tidak ada di pusat Pemberitahuan Pengaturan, apakah ada cara untuk memblokir ikon lencana?


Spotify, misalnya, membuat pemberitahuan untuk setiap acara yang tidak penting, tanpa cara memblokirnya di aplikasi.

Secara pribadi saya tidak mengerti bagaimana aplikasi diizinkan untuk menampilkan ikon lencana tanpa berada di pusat Pemberitahuan.


Contoh:

masukkan deskripsi gambar di sini


Aplikasi yang menandai ikon mereka, seperti pada tangkapan layar Anda, sudah lama sebelum dimasukkannya Pusat Pemberitahuan di OS X. Mereka tidak perlu menggunakan fungsi pemberitahuan untuk melakukannya.
tubedogg


Juga, ini adalah memperbaiki terbaik yang pernah ditemukan belum: hide berjalan Status aplikasi saat menjalankan (yang menyembunyikan lencana juga): apple.stackexchange.com/questions/68915/...
y3sh

Jawaban:


27

Saya punya solusi yang saya bisa balikkan. Saya sudah mengujinya di mesin saya, menjalankan Yosemite 10.10.4 (14E46). Jika Anda dapat menemukan bundel ID (dalam file Info.plist untuk bundel aplikasi), Anda dapat menggunakan skrip ini untuk memaksa aplikasi muncul di panel preferensi notifikasi.

# "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

Pada titik ini Anda dapat membuka Preferensi Sistem -> Pemberitahuan, dan Anda akan menemukan aplikasi yang baru saja Anda tambahkan di bagian bawah daftar. Anda dapat mengaktifkan / menonaktifkan lencana ikon dari halaman ini.


2
Solusi yang sangat cerdas, terima kasih Ryan! (Meskipun sekarang saya sudah 'memperbaikinya' dengan menjatuhkan Spotify dan beralih ke Apple Music.)
Jon Cox

1
AKHIRNYA, solusi untuk niggle yang mengerikan ini. Terima kasih * 1000.
Josh Harrison

1
Kamulah orangnya.
Udi

1
Saya hanya ingin mengkonfirmasi, bahwa solusi ini masih berfungsi!
23

1
Harus diganti grep com.apple.notificationcenter/db/db\$dengan grep 'com.apple.notificationcenter/db2/db$'pada Mac OS 10.14.1 (mungkin sebelumnya, saya melihat ini sudah lebih dari 3 tahun)
Alex S

0

Bagi orang-orang yang mac noobs seperti saya, untuk membuat dan menjalankan skrip di atas:

1. Buka TextEdit,
2. Masukkan editor ke mode Plain Text - Format> Make Plain Text.
(Jika Anda melewati langkah ini, itu tidak akan membiarkan Anda menyimpannya sebagai skrip.)
3. Tempel skrip di atas ke dalam jendela TextEdit
4. Simpan file sebagai skrip - File> Save As di TextEdit. Masukkan nama file Anda diikuti dengan ekstensi file ".sh", dan kemudian Simpan dokumen ke Desktop.
5. Buka aplikasi Terminal
6. Navigasikan ke desktop di Terminal - Ketik (lalu tekan enter):

cd Desktop
7. Tetapkan izin untuk file yang baru Anda buat sehingga Anda dapat menjalankannya - Ketikkan Terminal (lalu tekan en):
sudo chmod 700 file.sh
(Ganti "file.sh" dengan nama skrip Anda.)
8. Jalankan file - Ketikkan Terminal:
./file.sh
(Sekali lagi, ganti "file.sh" dengan nama skrip Anda.)
9. Buka Notifikasi di System Preferences. Anda harus dapat menemukan Aplikasi Spotify dan mematikan notifikasi.

Sumber untuk membuat skrip: Terminal 101: Mengotomatiskan Terminal dengan Skrip Bash


1
Tutorial yang bagus untuk membuat skrip shell yang dapat dieksekusi, tetapi untuk solusi yang ditingkatkan Anda tidak memerlukan skrip bash. Cukup buka terminal dan tempel di perintah. Lewati baris yang dimulai dengan #, karena itu adalah komentar di bash.
y3sh
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.