【開発者】Android 8.0以上で通知の音・バイブレーションを消す(NotificationManager, NotificationChannel)
Android 8.0から通知チャンネルが導入されたため、通知の音・バイブレーション・ヘッドアップ通知の処理の設定が変わりました。
この設定方法について解説します。
スポンサーリンク
もくじ
通知の音・バイブレーションを消す(NotificationManager, NotificationChannel)
通知の音・バイブレーションを消す場合は、通知チャンネルに重要度「IMPORTANCE_LOW」を設定してください。
1 2 |
int importance = NotificationManager.IMPORTANCE_LOW; NotificationChannel channel = new NotificationChannel(CHANNEL_ID, name, importance); |
通知チャンネルについて解説
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)
を実行
重要度(中)より高い重要度では通知の音やバイブレーションが動作します。
ユーザーの通知音・バイブレーションの挙動や設定についてはこちらを参照してください。