FeeeeeLog

【開発者】Android 8.0以上で通知の音・バイブレーションを消す(NotificationManager, NotificationChannel)

   

Android 8.0から通知チャンネルが導入されたため、通知の音・バイブレーション・ヘッドアップ通知の処理の設定が変わりました。
この設定方法について解説します。

スポンサーリンク

通知の音・バイブレーションを消す(NotificationManager, NotificationChannel)

通知の音・バイブレーションを消す場合は、通知チャンネルに重要度「IMPORTANCE_LOW」を設定してください。

通知チャンネルについて解説

Android 8.0から、通知には必ず通知チャンネルを対応付ける必要があります。
この通知チャンネルには重要度と通知音・バイブレーションの設定があります。

今までの通知の設定の大部分をこの通知チャンネルに行うようになりました。

通知チャンネルの重要度とは

Android 8.0のアプリの通知の重要度

Android 8.0のアプリの通知の重要度

通知チャンネルの重要度の意味と関係は次のようになります。

画面の設定(表示文字)
Android 8.0 / 8.1
画面の設定(表示文字)
Android 9
NotificationManager の定数 振る舞い
重要度(非常に高い) / 緊急 音声とポップアップで知らせる IMPORTANCE_HIGH ヘッドアップ通知
音・バイブレーションあり※1
音声で知らせる IMPORTANCE_DEFAULT 通知
音・バイブレーションあり※1
重要度(中) / 中 マナーモードで表示する IMPORTANCE_LOW 通知
音・バイブレーションなし
マナーモードで表示し最小化 IMPORTANCE_MIN 通知(アイコンなし)
音・バイブレーションなし

※1:通知音・バイブレーションはありが基本ですが、あえてオフにしたい場合は次のようにしてください。

  • 通知音をオフにしたい場合、NotificationChannel.setSound(Uri, AudioAttributes)でサイレントの音源を設定
  • バイブレーションをオフにしたい場合、NotificationChannnel.enableVibration(false)を実行

重要度(中)より高い重要度では通知の音やバイブレーションが動作します。

ユーザーの通知音・バイブレーションの挙動や設定についてはこちらを参照してください。