バッジ通知アイコンを設定しているが、設定通知センターにない迷惑アプリの場合、バッジアイコンをブロックする方法はありますか?
たとえば、Spotifyは、重要でないイベントごとに通知を作成しますが、アプリでブロックする方法はありません。
個人的には、そもそも通知センターにいなくてもアプリがどのようにバッジアイコンを表示できるかを理解していません。
例:
バッジ通知アイコンを設定しているが、設定通知センターにない迷惑アプリの場合、バッジアイコンをブロックする方法はありますか?
たとえば、Spotifyは、重要でないイベントごとに通知を作成しますが、アプリでブロックする方法はありません。
個人的には、そもそも通知センターにいなくてもアプリがどのようにバッジアイコンを表示できるかを理解していません。
例:
回答:
リバースエンジニアリングできるソリューションがあります。Yosemite 10.10.4(14E46)を実行して、マシンでテストしました。(アプリバンドルのInfo.plistファイルで)バンドルIDを見つけることができる場合、このスクリプトを使用して、アプリを通知設定ペインに強制的に表示できます。
# "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
この時点で、[システム環境設定]-> [通知]を開くと、リストの下部に追加したアプリが表示されます。このページからアイコンのバッジを有効/無効にすることができます。
grep com.apple.notificationcenter/db/db\$
とgrep 'com.apple.notificationcenter/db2/db$'
のMac OS 10.14.1(おそらく前に、私はこれはすでに3歳以上である参照)のよう
私のようなMac初心者の場合、上記のスクリプトを作成して実行するには:
1. TextEditを開きます
。2.エディターをプレーンテキストモードにします-[書式]> [プレーンテキストの作成]。
(この手順をスキップすると、スクリプトとして保存できません。)
3 .
上記のスクリプトをTextEditウィンドウに貼り付けます
。4.ファイルをスクリプトとして保存します-TextEditで[ファイル]> [名前を付けて保存]。ファイル名の後に「.sh」ファイル拡張子を入力し、ドキュメントをデスクトップに保存します。
5.ターミナルアプリケーションを開きます
6. ターミナル
のデスクトップに移動します-入力します(Enterキーを押します)。
cdデスクトップ7.作成したばかりのファイルの許可を設定して、実行できるようにします-ターミナルに入力します(その後、enを押します)。
sudo chmod 700 file.sh(「file.sh」をスクリプトの名前に置き換えます。)
./file.sh(ここでも、「file.sh」をスクリプトの名前に置き換えます。)
スクリプト作成のソース:ターミナル101:Bashスクリプトでターミナルを自動化する