Как установить уведомление с кастомным звуком в android 8.0? - PullRequest
0 голосов
/ 11 октября 2018

Я попытался установить звук настраиваемого уведомления, он отлично работает на устройствах Oreo (8.0), но на устройстве Oreo он не запускает настраиваемый звук, всегда запускает только звук по умолчанию.Кто-нибудь может помочь?

 if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
            Notification.Builder notificationBuilder =
                    new Notification.Builder(getApplicationContext(), NOTIFICATION_CHANNEL_ID)
                            .setSmallIcon(R.mipmap.ic_launcher)
                            .setContentTitle(title)
                            .setContentText(content)
                            .setAutoCancel(true)
                            //.setPriority(Notification.PRIORITY_MAX) // this is deprecated in API 26 but you can still use for below 26. check below update for 26 API
                            //.setSound(defaultSoundUri)
                            .setContentIntent(pendingIntent);

            NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "My Notifications", NotificationManager.IMPORTANCE_HIGH);
            // Configure the notification channel.
            AudioAttributes att = new AudioAttributes.Builder()
                    .setUsage(AudioAttributes.USAGE_NOTIFICATION)
                    .setContentType(AudioAttributes.CONTENT_TYPE_SPEECH)
                    .build();
            notificationChannel.setSound(defaultSoundUri, att);
            notificationChannel.setDescription(content);
            notificationChannel.enableLights(true);
            notificationChannel.setLightColor(Color.RED);
            notificationChannel.setVibrationPattern(new long[]{0, 1000, 500, 1000});
            notificationChannel.enableVibration(true);
            notificationManager.createNotificationChannel(notificationChannel);
            notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());

        } else {
            NotificationCompat.Builder notificationBuilder =
                    new NotificationCompat.Builder(getApplicationContext())
                            .setSmallIcon(R.mipmap.ic_launcher)
                            .setContentTitle(title)
                            .setContentText(content)
                            .setAutoCancel(true)
                            .setPriority(Notification.PRIORITY_MAX) // this is deprecated in API 26 but you can still use for below 26. check below update for 26 API
                            .setSound(defaultSoundUri)
                            .setContentIntent(pendingIntent);

            notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());

        }

1 Ответ

0 голосов
/ 11 октября 2018

Если вы использовали версию Android под Oreo, вам нужно только добавить свой MY_SOUND_NOTIFICATION.mp3 к вашим ресурсам в папке с именем raw и начать кодировать свой класс, ноТак как вы используете Oreo или выше, вам нужно проверить SDK_VERSION, чтобы использовать метод с именем setSound из NotificationChannel

. Я не буду публиковать какой-либо код, так как я не выполнил код для исправления.Если вы отправите код, я буду рад помочь вам

...