Oreo: Когда я использую NotificationManager.IMPORTANCE_LOW, уведомление не появляется в строке состояния - PullRequest
0 голосов
/ 11 января 2019

Когда я использую NotificationManager.IMPORTANCE_LOW для отключения звука, уведомление не отображается в строке состояния. Когда я вижу настройки канала, у меня есть: Средний Нет звука.

Здесь весь мой код

     Notification notification = notificationBuilder.build();

                                    notification.flags = Notification.FLAG_AUTO_CANCEL;
                                    NotifCmtManager = (NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
                                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                                        if(!checkGroupSon) {
                                             /* Create or update. */
                                            mChannel = new NotificationChannel("comment", "YuYu", NotificationManager.IMPORTANCE_HIGH);
                                            mChannel.enableLights(true);
                                            mChannel.setLightColor(Color.RED);

                                            mChannel.enableVibration(true);
                                            mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});


                                            assert mChannel != null;
                                            notificationBuilder.setChannelId("comment");
                                            NotifCmtManager.deleteNotificationChannel("noS");
                                            NotifCmtManager.createNotificationChannel(mChannel);

                                        }else{

                                                  /* Create or update. */
                                           mChannel = new NotificationChannel("noS", "YuYu No Sound", NotificationManager.IMPORTANCE_LOW);
                                            mChannel.enableLights(true);
                                            mChannel.setLightColor(Color.RED);

                                            mChannel.enableVibration(true);
                                            mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});

                                            //   mChannel.setSound(null,null);
                                            mChannel.enableVibration(true);


                                            assert mChannel != null;
                                            notificationBuilder.setChannelId("noS");
                                          NotifCmtManager.deleteNotificationChannel("comment");
                                            NotifCmtManager.createNotificationChannel(mChannel);


                                        }
                                    }
                                    NotifCmtManager.notify(ID_NOTIFICATIONCMT, notification);

1 Ответ

0 голосов
/ 11 января 2019

IMPORTANCE_LOW уведомление будет отображаться в строке состояния, только если нет других более важных уведомлений, заполняющих все пространство строки состояния.

Чтобы повысить вероятность отображения значка вашего уведомления в строке состояния, вы можете использовать канал IMPORTANCE_DEFAULT. Чтобы отключить звук, вы можете установить null звук для канала:

mChannel = new NotificationChannel("comment_notSound", "YuYu No Sound",
        NotificationManager.IMPORTANCE_DEFAULT);
mChannel.setSound(null, null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...