web-dev-qa-db-ja.com

音なしで通知を表示する方法java

ビルド時に音が出ない通知を作成するにはどうすればよいですか?私は通知を作成していますが、ユーザーはそれが音を出すという事実を好みません。

どうすれば無音に変更できますか/音がまったくありませんか?

通知の表示方法:

Android.support.v7.app.NotificationCompat.Builder builder = new Android.support.v7.app.NotificationCompat.Builder(main);
builder.setStyle(new Android.support.v7.app.NotificationCompat.BigTextStyle().bigText(text));
builder.setSmallIcon(R.drawable.app);
builder.setContentTitle("Rooster Maandag:");
builder.setOngoing(false);
builder.setAutoCancel(true);
builder.setDefaults(Notification.DEFAULT_ALL);
builder.setVisibility(NotificationCompat.VISIBILITY_PUBLIC);
builder.setPriority(NotificationCompat.PRIORITY_DEFAULT);
notificationManager = (NotificationManager) main.getSystemService(main.NOTIFICATION_SERVICE);
notificationManager.notify(NOTIFICATION_ID, builder.build());

私はグーグルで検索しようとしましたが、私が得る唯一の結果は、音を再生しない方法ではなく、音を再生する方法です...

編集これはおそらく一部の人の目には重複していますが、私の場合、指定されたデフォルトの代替を見つけることができませんでしたが、この新しいメソッドはsetDefaultsと呼ばれます

15
Jason

builder.setDefaults(Notification.DEFAULT_ALL);への行を削除します。サウンドは再生されませんが、必要に応じて他のすべての通知デフォルトを有効にする必要がある場合があります

11

OREO 8.1でサウンドを無効にするには、通知の優先度をLOWに変更すると、通知のサウンドが無効になります。

NotificationManager.IMPORTANCE_LOW

コードは次のようなものです:

NotificationChannel chan1 = new NotificationChannel("default", "default", NotificationManager.IMPORTANCE_LOW);
14
Kuldip Sharma

Android O、私にとっては、通知のこの設定で動作しました:

                .setGroupAlertBehavior(GROUP_ALERT_SUMMARY)
                .setGroup("My group")
                .setGroupSummary(false)
                .setDefaults(NotificationCompat.DEFAULT_ALL)
10

Android Oreo。

次のようにチャンネルを作成する必要があります。

NotificationChannel notificationChannel = new NotificationChannel("Id" , "Name", NotificationManager.IMPORTANCE_DEFAULT);
            notificationChannel.setSound(null, null);
            notificationChannel.setShowBadge(false);
            notificationManager.createNotificationChannel(notificationChannel);
8
Михаил

遅れるかもしれませんが、それでもこれを追加したいと思います。 Oの下のすべてのOSに対して_NotificationCompat.Builder builder_で.setSound(null)を使用してサウンドを無効にできます。

上記のOバージョンnの場合、_NotificationChannel channel_を作成した後にchannel.setSound(null,null)を追加します

上記のソリューションはすべて時代遅れであるか、一部のOSバージョンのみを対象としています。

4
rana

通知にすべて(サウンド、バイブレーション、ライト)が必要な場合に使用します。

builder.setDefaults(Notification.DEFAULT_ALL);

または、要件に基づいてアイテムを有効または無効にすることができます。

builder.setDefaults(Notification.DEFAULT_LIGHTS | Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE);

何もしたくない場合はこの行をコメントしてください。

3
albeee

優先順位を設定して通知を表示できるようにする簡単な方法は、実際には無音のサウンドを設定することです。 silence.mp3を生成して「raw」フォルダーに入れ、Uriを使用して通知音を設定するだけです。

Uri.parse("Android.resource://"+YOUR_APP_PACKAGE_NAME+"/"+R.raw.silence) 

この.mp3は、Audacityなどのアプリで生成できます。沈黙を生成するオプションがあり、秒数を設定するだけでいいです。

デフォルトを0に設定し、音をnullに設定すると、通知は聞こえずに表示されますが、優先度を上げて通知を表示することはできません。

1
user1540907

その正確なコードを使用してください:

NotificationChannel chan = new NotificationChannel(NOTIFICATION_CHANNEL_ID, channelName, NotificationManager.IMPORTANCE_DEFAULT);

NOTIFICATION_CHANNEL_ID --> random String.
channelName ==> random string
0
Ramy Bakkar