2017-09-17 68 views
10

Mam następujący kod, ale za każdym razem, gdy słyszę domyślny dźwięk Androida.Powiadomienia w systemie Android 8 setSound nie działa

 // create channel 
     NotificationChannel channel = new NotificationChannel(ANDROID_CHANNEL_ID, 
       ANDROID_CHANNEL_NAME, NotificationManager.IMPORTANCE_DEFAULT); 
     // Sets whether notifications posted to this channel should display notification lights 
     channel.enableLights(true); 
     // Sets whether notification posted to this channel should vibrate. 
     channel.enableVibration(true); 
     // Sets the notification light color for notifications posted to this channel 
     channel.setLightColor(Color.GREEN); 
     // Sets whether notifications posted to this channel appear on the lockscreen or not 
     //channel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE); 
     channel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC); 

     Uri uri = Uri.parse("android.resource://"+this.getPackageName()+"/" + R.raw.aperturaabductores); 

     AudioAttributes att = new AudioAttributes.Builder() 
       .setUsage(AudioAttributes.USAGE_NOTIFICATION) 
       .setContentType(AudioAttributes.CONTENT_TYPE_SPEECH) 
       .build(); 
     channel.setSound(uri,att); 

To jest mój dźwięk pablomonteserin.es/aperturaabductores.wav

+0

Nikt, naprawdę? – Ricardo

+0

Testowany. działa w emulatorze. –

+0

Nie działa w moim emulatorze i urządzeniu. Czy testowałeś na systemie Android 8 ?. Zwróć uwagę, że chcę załadować niestandardowy dźwięk. – Ricardo

Odpowiedz

2

Próbowałem zobaczyć różnicę między pliku dźwiękowego i kopalni. Użyłem oprogramowania Audacity. Twój plik dźwiękowy ma częstotliwość próbkowania 22050 Hz, podczas gdy pliki dźwiękowe, których używam, są próbkowane przy częstotliwości 44100 Hz. Więc przekonwertowałem częstotliwość próbkowania plików dźwiękowych na 44100 Hz i wykorzystałem to jako dźwięk powiadomienia. Teraz działa.

Problem dotyczy pliku dźwiękowego. Może to być nowa zmiana w Androidzie O, ponieważ działa dobrze na starszej wersji Androida.

Oto, jak dokonać ponownego próbkowania - enter image description here