Звук пуш уведомления запрещен при установке приложения

Я полный нуб в разработке приложений для андроид столкнулся с непонятной для меня ситуацией. При отладке приложения я использую разные телефоны и долго не мог понять почему нет звука при поступление Пуш ни при открытом приложении ни в бэке. Находил разные предложения на стэке, но в итоге ответ нашел сам. Оказывается звук был запрещен по умолчанию в настройках в разделе приложение - мое приложение - уведомления. Подскажите пожалуйста где и что нужно прописать чтобы приложению при установке звук в уведомлениях был разрешен без манипуляций в разделе настроек телефона (как собственно работают все приложения на телефонах). Что я делают не так или не понимаю. Поиск в permissions мне ничего не дал либо я слепой.


Ответы (1 шт):

Автор решения: Труфальдино

Сам android запрещает использовать те ресурсы которые не подтверждены в пользовательских настройках. В вашем случае либо обратится Android NDK (N!), либо к появлению уведомления привязать некий интент который будет запускать звук "по "умолчанию" из библиотеки звуков. Либо я вопрос понял не правильно.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
          NotificationChannel notificationChannel = new NotificationChannel("new_email_arrived_channel", "My Emailer", NotificationManager.IMPORTANCE_HIGH);
          notificationChannel.setShowBadge(true);
          notificationChannel.setDescription("");
          AudioAttributes att = new AudioAttributes.Builder()
                  .setUsage(AudioAttributes.USAGE_NOTIFICATION)
                  .setContentType(AudioAttributes.CONTENT_TYPE_SPEECH)
                  .build();
          notificationChannel.setSound(Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + getPackageName() + "/raw/my_custom_sound"), att);
          notificationChannel.enableVibration(true);
          notificationChannel.setVibrationPattern(new long[]{400, 400});
          notificationChannel.setLockscreenVisibility(NotificationCompat.VISIBILITY_PUBLIC);
          NotificationManager manager = getSystemService(NotificationManager.class);
          manager.createNotificationChannel(notificationChannel);
      }

Здесь все описано https://developer.android.com/guide/topics/ui/notifiers/notifications

→ Ссылка