Уведомление не работает должным образом на android API 28 - PullRequest
2 голосов
/ 19 января 2020

Мне действительно нужна твоя помощь. В настоящее время я работаю над модулем уведомлений в моем приложении. Моя проблема в том, что уведомления работают под Oreo, но не работают на Oreo и P ie. Я использую устройства mi (Xiaomi), и ниже указан мой код:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        NotificationChannel channel = notificationManager.getNotificationChannel(CHANNEL_ID);
        if (channel == null){
            channel = new NotificationChannel(CHANNEL_ID, CHANNEL_NAME, NotificationManager.IMPORTANCE_HIGH);
                channel.enableLights(true);
                channel.enableVibration(true);
                channel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
                channel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
                AudioAttributes att = new AudioAttributes.Builder()
                        .setUsage(AudioAttributes.USAGE_NOTIFICATION)
                        .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
                        .build();
                channel.setSound(Uri.parse(sound), att);
                notificationManager.createNotificationChannel(channel);
            }
            mBuilder = new NotificationCompat.Builder(mContext, CHANNEL_ID);
            mBuilder.setSmallIcon(icon)
                    .setTicker(message)
                    .setWhen(System.currentTimeMillis())
                    .setAutoCancel(true)
                    .setContentTitle(title)
                    .setContentIntent(resultPendingIntent)
                    .setSound(Uri.parse(sound))
                    .setLights(0xff00ff00, 500, 500)
                    .setStyle(new NotificationCompat.BigTextStyle()
                            .bigText(notificationVO.getMessage()))
                    .setLargeIcon(BitmapFactory.decodeResource(mContext.getResources(), icon))
                    .setContentText(message)
                    .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
                    .setVibrate(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
        }

Подробная информация о моей проблеме заключается в том, что уведомление приходит по телефону, когда условие включено, но нет звука, вибрации. на экране блокировки не показывается уведомление, нет светодиода, нет вибрации и нет звука.

Есть ли кто-нибудь, кто знает, как решить эту проблему? Спасибо всем, и я очень ценю вашу помощь

1 Ответ

0 голосов
/ 19 января 2020

Краткий ответ: Используйте другой идентификатор канала и посмотрите, работает ли он.

Более подробно: Настройки android каналов уведомлений не могут быть изменены после того, как они созданы (но пользователь может изменить их из настроек уведомлений приложения). Поэтому, если вы хотите использовать новые настройки для своего канала после его создания, у вас есть три варианта:

  1. Использовать другой идентификатор канала

  2. Удалить старую канал и создайте новый канал со старым идентификатором канала, как объяснено здесь .

  3. Отправьте пользователя в настройки уведомлений для изменения настроек, как объяснено здесь .

...