(Android) Пользовательский URI для уведомления не работает - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть приложение Android, которое уведомляет пользователей уведомлением, но я хочу установить собственный звук для уведомления. У меня есть NotificationHelper класс, который создает уведомления. Ниже приведен код для создания уведомления. Все работает, как и ожидалось, за исключением звука уведомлений, который является просто стандартным звуковым сигналом моего устройства (Galaxy Tab A, а не AVD). Комментарии - это вещи, которые я уже пробовал, которые не сработали.

public NotificationCompat.Builder getChannel1Notification(String title, String message) {

        return new NotificationCompat.Builder(getApplicationContext(), channel1ID)
                    .setContentTitle(title)
                    .setContentText(message)
                    //.setSound(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.piano))
                    //.setSound(Uri.parse("android.resource://com.tutorial.wufw_locationalarmproject/" + R.raw.piano))
                    //.setSound(Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE  + "://" + getPackageName() + "/raw/piano"))
                    .setSmallIcon(R.drawable.location_icon);
        }
    }

Может кто-нибудь пролить свет на это? Я в недоумении, и все вопросы на сайте о подобных проблемах не приближают меня. Ура!

РЕДАКТИРОВАТЬ: Вот моя настройка канала уведомлений.

public NotificationHelper(Context base) {
        super(base);
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            createChannels();
        }
    }

    @TargetApi(Build.VERSION_CODES.O)
    public void createChannels() {

        NotificationChannel channel1 = new NotificationChannel(channel1ID, channel1Name, NotificationManager.IMPORTANCE_DEFAULT);
        channel1.enableLights(true);
        channel1.enableVibration(true);
        channel1.setLightColor(R.color.colorPrimary);
        channel1.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);

        getManager().createNotificationChannel(channel1);
    }

Я пытался использовать вещь AudioAttributes для API 26 и выше, но это приводит к тому, что уведомление просто не запускается вообще.

...