2013-07-03 11 views
6

Ho provato molte cose suggerite qui, ma niente funziona per me. qui è il mio codice sorgente:Suono di Android Notification Builder non funziona

Intent resultIntent = new Intent(this, MainActivity.class); 
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, resultIntent,PendingIntent.FLAG_UPDATE_CURRENT); 
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) 
.setSmallIcon(R.drawable.ic_launcher) 
.setContentTitle("title") 
.setContentText("Hello World!"); 
mBuilder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)); 
mBuilder.setContentIntent(contentIntent); 
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
mNotificationManager.notify(0, mBuilder.build()); 

Viene visualizzata la notifica, ma nessun suono, qualsiasi aiuto?

+0

Sto avendo lo stesso problema, si prega di condividere se hai trovato una soluzione –

+0

il mio problema era perché scrivevo 'mBuilder.setDefaults (Notification.DEFAULT_ALL);'. Questa linea rende "mBuilder.setSound" senza effetti. – Emadpres

risposta

2

Non riesco a vedere niente di sbagliato nel modo in cui si imposta il suono. Un altro modo alternativo è impostare il suono in questo modo. Dategli un andare e vedere se aiuta ...

Uri alertSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) 
.setSmallIcon(R.drawable.ic_launcher) 
.setContentTitle("title") 
.setContentText("Hello World!") 
.setSound(alertSound); 

Aggiornato
Si prega di provare a modificare il NotificationManager come segue e provare ...

NotificationManager mNotificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE); 
Notification notification = mBuilder.getNotification(); 
notification.flags = Notification.FLAG_AUTO_CANCEL; // cancel the notification when clicked by the user 
mNotificationManager.notify(0, notification); 
+0

Ho provato anche questo e non funziona :( – AhlyM

+0

Perché non provi solo a riprodurre un suono prima semplicemente chiamando 'Uri notification = RingtoneManager.getDefaultUri (RingtoneManager.TYPE_NOTIFICATION); Suoneria r = RingtoneManager.getRingtone (getApplicationContext() , notifica) r.play(); 'clic su un pulsante per vedere se funziona. – neo108

+0

E lo stai testando su un dispositivo o su un emulatore? Il mio consiglio è di testare su un dispositivo reale. – neo108

2

Usa notification.sound invece di mBuilder.setSound() ha risolto il mio problema.

Ecco il codice -

Notification notification = mBuilder.build(); 
notification.sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
mNotificationManager.notify(0, notification); 
+0

Sono stato in grado di utilizzare mBuilder.setSound() dal debugger con un punto di interruzione dopo aver impostato il suono, ma senza il punto di interruzione non sarebbe emesso alcun suono. Ma questo metodo funziona con e senza il debugger. Grazie. – shellman

+0

Queste cose fisse per me sui dispositivi Samsung.:) – ubuntudroid

17

impostare i flag di default:

mBuilder.setDefaults(Notification.DEFAULT_SOUND|Notification.DEFAULT_LIGHTS|Notification.DEFAULT_VIBRATE); 
+1

'mBuilder.setDefaults (Notification.DEFAULT_ALL)' dovrebbe funzionare bene. – ubuntudroid

0

Rivedere le impostazioni audio fatto. Il livello di notifica era fino a zero.

È difficile perché altri suoni funzioneranno tranne le notifiche.

0

Ciò può anche a causa di una minore incompatibilità con la versione dell'API precedente. Ad esempio, quando si compila lo SDK 25 ma mira versione precedente (ad esempio SDK 15), ho aggiunto la seguente linea per risolvere il problema:

notification.audioStreamType = AudioManager.STREAM_ALARM; 
Problemi correlati