iOSで集中モードをオンにしていても、なぜか許可していないはずのSlackやDiscordなどのアプリから通知が来る問題に悩まされていました。
しかし、原因はアプリ通知以外の設定にあるようで、設定を変更したら意図しない通知は来なくなりました!!
原因
集中モードの設定では、アプリからの通知の制御のほかに、連絡先からの通知の制御を行うことが出来ます。
そして実は、純正アプリ以外でも、一部のアプリ(主にSNS)は「アプリ」設定ではなく「連絡先」の設定が適用されるようになっています。
そのため、選択された連絡先からの「通知を知らせない」モードになっていると、選択されていない連絡先からの通知と共に、連絡先の設定を利用するアプリからの通知も届いてしまうようです。
対策
このような仕様にもかかわらず、どういう訳か連絡先の通知設定ではアプリ内の連絡先を選択することができません。
そのため、画像のように連絡先の通知設定で「通知を許可」モードを選択すると、選択された連絡先のみ通知するようになり、当然選択できないアプリ内の連絡先からの通知も届かないようになります。
これで、集中モードで許可されていないアプリからの通知は来なくなりました。
結論
集中モードが機能しないという時は、集中モードの設定で「連絡先」の設定を見直してみましょう。
おまけ: 技術的な原因 (推測)
iOS 15から、プッシュ通知のAPIに「コミュニケーション通知(Communication Notifications)」という機能が追加されています。
この機能は、簡単に言えばSNSアプリなどコミュニケーション系アプリでの通知を最適化する機能で、通知のUIで相手のプロフィールやグループのアイコンや名前などが表示されるようにしたり、Siriとの連携を向上させることなどができる機能です。
言い換えれば、サードパーティーアプリでも、iOSにチャットメッセージの通知であることを伝えることができる機能であることが分かります。
ここからは推測ですが、コミュニケーション通知を使うと、iOSは通知を(アプリ内の)連絡先からのメッセージと解釈し、純正のメッセージアプリからの通知と同様の扱いをすると予想できます。
そして集中モードでは、メッセージアプリと同様に連絡先の通知設定が適用され(アプリ通知の設定は無視され)、その結果コミュニケーション通知を使っているアプリからの通知が届いてしまうのではないか、と推測します。
ある意味、iOSの仕様上の欠陥ですね... 今後改善されることを期待します。