tono tener sonidos sonido samsung poner notificación notificaciones notificacion las distintos distinto cómo como cambiar cada aplicación android notifications uri

android - tener - Uri a la notificación de sonido por defecto?



distintos sonidos notificaciones android (7)

Yo uso Notification.Builder para construir una notificación. Ahora quiero usar la notificación de sonido predeterminada con:

builder.setSound(Uri sound)

Pero, ¿dónde está el Uri a la notificación predeterminada?


Para la notificación predeterminada del sistema

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

Para notificaciones personalizadas

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

Fuente de sonido de notificación (renombré a "twirl" y lo coloqué en la carpeta res-> raw)

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

Constructor de notificaciones:

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());


Las dos opciones para usar el Default Notification Sound son:

mBuilder.setDefaults(Notification.DEFAULT_SOUND);

o usando la clase RingtoneManager :

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


Puedes usar esto también:

Uri uri = Uri.parse(PreferenceManager.getDefaultSharedPreferences(this). getString("pref_tone", "content://settings/system/notification_sound")); mBuilder.setSound(uri);


Si alguien todavía necesita, esto funciona absolutamente bien con el sonido y la vibración.

Context context = getApplicationContext(); long[] vibrate = new long[] { 1000, 1000, 1000, 1000, 1000 }; Intent notificationIntent = new Intent(context, MainActivity.class); PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT); Resources res = context.getResources(); Notification.Builder builder = new Notification.Builder(context); builder.setContentIntent(contentIntent) .setSmallIcon(R.drawable.notif) .setTicker("lastWarning") .setWhen(System.currentTimeMillis()) .setAutoCancel(true) .setVibrate(vibrate) //.setContentTitle(res.getString(R.string.notifytitle)) .setContentTitle("Notification") .setSound(Settings.System.DEFAULT_NOTIFICATION_URI) //.setContentText(res.getString(R.string.notifytext)) .setContentText("Notification text"); // Notification notification = builder.getNotification(); // until API 16 Notification notification = builder.build(); NotificationManager notificationManager = (NotificationManager) context .getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.notify(NOTIFY_ID, notification);

Si desea deshabilitar, por ejemplo, cambio de vibración, vibre a nuevo largo [] {0,0,0,0,0}; Casi lo mismo que puedes hacer con el sonido o usar la declaración else else.


intente usar RingtoneManager para obtener Uri de notificación predeterminada como:

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


builder.setSound(Settings.System.DEFAULT_NOTIFICATION_URI) funciona


todos estos métodos funcionan

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

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

  3. mBuilder.setDefaults(Notification.DEFAULT_SOUND);

RingtoneManager