ลบตราแจ้งเตือนท่าเรือสำหรับแอพที่ไม่ได้อยู่ในศูนย์การแจ้งเตือน


12

สำหรับแอปที่สร้างความรำคาญที่ตั้งไอคอนแจ้งเตือนของตราสัญลักษณ์ แต่ไม่ได้อยู่ในศูนย์การแจ้งเตือนการตั้งค่าจะมีวิธีปิดกั้นไอคอนป้ายกำกับหรือไม่


ตัวอย่างเช่น Spotify สร้างการแจ้งเตือนสำหรับทุกเหตุการณ์ที่ไม่มีนัยสำคัญโดยไม่มีวิธีปิดกั้นในแอป

โดยส่วนตัวฉันไม่เข้าใจว่าแอปได้รับอนุญาตให้แสดงไอคอนตราโดยไม่ต้องอยู่ในศูนย์การแจ้งเตือนตั้งแต่แรก


ตัวอย่าง:

ป้อนคำอธิบายรูปภาพที่นี่


แอปที่ทำลายไอคอนของพวกเขาเช่นเดียวกับในภาพหน้าจอของคุณก่อนหน้าการรวมศูนย์การแจ้งเตือนไว้ใน OS X พวกเขาไม่จำเป็นต้องใช้ฟังก์ชันการแจ้งเตือนเพื่อทำเช่นนั้น
tubedogg

เกี่ยวข้อง: apple.stackexchange.com/questions/77331/…
y3sh

และนี่คือการแก้ไขที่ดีที่สุดที่ฉันเคยพบ: ซ่อนสถานะแอพที่กำลังรันอยู่ในขณะที่ทำงานอยู่ (ซึ่งซ่อนตราไว้ด้วย): apple.stackexchange.com/questions/68915/…
y3sh

คำตอบ:


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
ทางออกที่ฉลาดมากขอบคุณ Ryan! (แม้ว่าตอนนี้ฉันจะ 'แก้ไข' โดยวาง Spotify และเปลี่ยนเป็น Apple Music)
Jon Cox

1
ในที่สุดทางออกสำหรับ niggle ที่น่ากลัวนี้ ขอบคุณ * 1,000
Josh Harrison

1
คุณคือผู้ชาย
Udi

1
ฉันแค่ต้องการยืนยันว่าวิธีนี้ยังใช้งานได้!
23tux

1
จำเป็นต้องแทนที่grep com.apple.notificationcenter/db/db\$ด้วยgrep 'com.apple.notificationcenter/db2/db$'ในฐานะของ Mac OS 10.14.1 (อาจเป็นไปได้ก่อนหน้านี้ฉันเห็นว่ามีอายุมากกว่า 3 ปีแล้ว)
Alex S

0

สำหรับคนที่เป็น noobs ของ mac อย่างฉันเพื่อสร้างและเรียกใช้สคริปต์ด้านบน:

1. เปิด TextEdit
2. ใส่ตัวแก้ไขในโหมดข้อความล้วน - รูปแบบ> สร้างข้อความล้วน
(หากคุณข้ามขั้นตอนนี้จะไม่ให้คุณบันทึกเป็นสคริปต์)
3. วางสคริปต์ด้านบนลงในหน้าต่าง TextEdit
4. บันทึกไฟล์เป็นสคริปต์ - ไฟล์> บันทึกเป็นใน TextEdit ป้อนชื่อไฟล์ของคุณตามด้วยนามสกุลไฟล์“ .sh” แล้วบันทึกเอกสารลงบนเดสก์ท็อป
5. เปิดแอปพลิเคชั่น Terminal
6. นำทางไปยังเดสก์ท็อปในเทอร์มินัล - พิมพ์ (จากนั้นกด Enter):

ซีดีตั้งโต๊ะ
7. ตั้งค่าการอนุญาตสำหรับไฟล์ที่คุณเพิ่งสร้างขึ้นเพื่อให้คุณสามารถเรียกใช้ - พิมพ์ในเทอร์มินัล (จากนั้นกด en):
sudo chmod 700 file.sh
(แทนที่ "file.sh" ด้วยชื่อสคริปต์ของคุณ)
8. เรียกใช้ไฟล์ - พิมพ์ใน Terminal:
./file.sh
(อีกครั้งแทนที่ "file.sh" ด้วยชื่อสคริปต์ของคุณ)
9. เปิดการแจ้งเตือนในการตั้งค่าระบบ คุณควรจะสามารถหาแอป Spotify และปิดการแจ้งเตือน

แหล่งที่มาสำหรับการสร้างสคริปต์: เทอร์มินัล 101: ทำให้เทอร์มินัลเป็นอัตโนมัติด้วย Bash Scripts


1
บทแนะนำที่ดีเกี่ยวกับการสร้างเชลล์สคริปต์ที่ใช้งานได้ แต่สำหรับโซลูชัน upvoted คุณไม่จำเป็นต้องใช้สคริปต์ทุบตี เพียงแค่เปิดเทอร์มินัลแล้ววางในคำสั่ง ข้ามบรรทัดที่ขึ้นต้นด้วย # เนื่องจากนั่นเป็นข้อคิดเห็นใน bash
y3sh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.