126 votes

Uri pour la notification sonore par défaut ?

J'utilise le Notification.Builder pour construire une notification. Maintenant, je veux utiliser la notification sonore par défaut avec :

builder.setSound(Uri sound)

Mais où se trouve l'Uri de la notification par défaut ?

279voto

ρяσѕρєя K Points 51253

Essayez d'utiliser RingtoneManager pour obtenir l'Uri de notification par défaut :

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

builder.setSound(uri);

51 votes

Merci. Mais j'ai vu que je peux aussi utiliser setDefaults(Notification.DEFAULT_SOUND) ;-)

8 votes

Vous pouvez aussi passer celui-là Settings.System.DEFAULT_NOTIFICATION_URI

0 votes

D'une certaine manière, ça ne fonctionne toujours pas pour moi.

46voto

Fortega Points 8890

builder.setSound(Settings.System.DEFAULT_NOTIFICATION_URI) fonctionne aussi bien

5 votes

Settings vient de import Android.provider.Settings ;

29voto

Elenasys Points 23268

Les deux options permettant d'utiliser le Default Notification Sound sont :

mBuilder.setDefaults(Notification.DEFAULT_SOUND);

ou en utilisant RingtoneManager La classe :

mBuilder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));

0 votes

SetDefaults(int) n'efface-t-il pas d'autres valeurs par défaut si vous ne les OR pas ?

12voto

Cristiana214 Points 661

toutes ces méthodes fonctionnent

  1. mBuilder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));

  2. mBuilder.setSound(Settings.System.DEFAULT_NOTIFICATION_URI);

  3. mBuilder.setDefaults(Notification.DEFAULT_SOUND);

Documentation Google

5voto

sssvrock Points 31

Pour la notification par défaut du système

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

Pour une notification personnalisée

Uri customSoundUri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.twirl);

Source du son de notification (j'ai renommé en "twirl" et placé dans le dossier res->raw folder)

https://notificationsounds.com/message-tones/twirl-470

Constructeur de notification :

NotificationCompat.Builder mBuilder =
                new NotificationCompat.Builder(this)
                        .setSmallIcon(R.drawable.notificaion_icon)
                        .setContentTitle("Title here")
                        .setContentText("Body here")
                        .setSound(defaultSoundUri)
                        .setAutoCancel(true);

NotificationManager mNotifyMgr =
                (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

mNotifyMgr.notify(id, mBuilder.build());

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X